<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="generator" content="TiddlyWiki" />
<meta name="tiddlywiki-version" content="5.2.3" />
<meta name="format-detection" content="telephone=no">
<link id="faviconLink" rel="shortcut icon" href="favicon.ico">
<title>Majiajun的TiddlyWiki — 个人知识管理</title>
<div id="styleArea">
<style data-tiddler-bag="default" data-tiddler-revision="0" data-tiddler-title="$:/boot/boot.css" data-tiddler-type="text/css" data-tiddler-revision="0" data-tiddler-bag="default" type="text/css">/*
Basic styles used before we boot up the parsing engine
*/

/*
Error message and password prompt
*/

.tc-error-form {
	font-family: sans-serif;
	color: #fff;
	z-index: 20000;
	position: fixed;
	background-color: rgb(255, 75, 75);
	border: 8px solid rgb(255, 0, 0);
	border-radius: 8px;
	width: 50%;
	margin-left: 25%;
	margin-top: 4em;
	padding: 0 2em 1em 2em;
}

.tc-error-form h1 {
	text-align: center;
}

.tc-error-prompt {
	text-align: center;
	color: #000;
}

.tc-error-message {
	overflow: auto;
	max-height: 40em;
	padding-right: 1em;
	margin: 1em 0;
	white-space: pre-line;
}

.tc-password-wrapper {
    font-family: sans-serif;
	z-index: 20000;
	position: fixed;
	text-align: center;
	width: 200px;
	top: 4em;
	left: 50%;
	margin-left: -144px; /* - width/2 - paddingHorz/2 - border */
	padding: 16px 16px 16px 16px;
	border-radius: 8px;
}

.tc-password-wrapper {
	color: #000;
	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
	background-color: rgb(197, 235, 183);
	border: 8px solid rgb(164, 197, 152);
}

.tc-password-wrapper form {
	text-align: left;
}

.tc-password-wrapper h1 {
	font-size: 16px;
	line-height: 20px;
	padding-bottom: 16px;
}

.tc-password-wrapper input {
	width: 100%;
}
</style>
</div>
<style type="text/css">
.tc-sidebar-header {
	text-shadow: 0 1px 0 rgba(255,255,255, 0.8);
}.tc-tiddler-info {
	
  -webkit-box-shadow: inset 1px 2px 3px rgba(0,0,0,0.1);
     -moz-box-shadow: inset 1px 2px 3px rgba(0,0,0,0.1);
          box-shadow: inset 1px 2px 3px rgba(0,0,0,0.1);

}@media screen {
	.tc-tiddler-frame {
		
  -webkit-box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.3);
     -moz-box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.3);
          box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.3);

	}
}@media (max-width: 959px) {
	.tc-tiddler-frame {
		
  -webkit-box-shadow: none;
     -moz-box-shadow: none;
          box-shadow: none;

	}
}.tc-page-controls button svg, .tc-tiddler-controls button svg, .tc-topbar button svg {
	
  -webkit-transition: fill 150ms ease-in-out;
     -moz-transition: fill 150ms ease-in-out;
          transition: fill 150ms ease-in-out;

}.tc-tiddler-controls button.tc-selected,
.tc-page-controls button.tc-selected {
	
  -webkit-filter: drop-shadow(0px -1px 2px rgba(0,0,0,0.25));
     -moz-filter: drop-shadow(0px -1px 2px rgba(0,0,0,0.25));
          filter: drop-shadow(0px -1px 2px rgba(0,0,0,0.25));

}.tc-tiddler-frame input.tc-edit-texteditor,
.tc-tiddler-frame select.tc-edit-texteditor {
	
  -webkit-box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.15);
     -moz-box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.15);
          box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.15);

}.tc-edit-tags {
	
  -webkit-box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.15);
     -moz-box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.15);
          box-shadow: inset 0 1px 8px rgba(0, 0, 0, 0.15);

}.tc-tiddler-frame .tc-edit-tags input.tc-edit-texteditor {
	
  -webkit-box-shadow: none;
     -moz-box-shadow: none;
          box-shadow: none;

	border: none;
	outline: none;
}textarea.tc-edit-texteditor {
	font-family: ;
}canvas.tc-edit-bitmapeditor  {
	
  -webkit-box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5);
     -moz-box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5);
          box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5);

}.tc-drop-down {
	border-radius: 4px;
	
  -webkit-box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5);
     -moz-box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5);
          box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5);

}.tc-block-dropdown {
	border-radius: 4px;
	
  -webkit-box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5);
     -moz-box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5);
          box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5);

}.tc-modal {
	border-radius: 6px;
	
  -webkit-box-shadow: 0 3px 7px rgba(0,0,0,0.3);
     -moz-box-shadow: 0 3px 7px rgba(0,0,0,0.3);
          box-shadow: 0 3px 7px rgba(0,0,0,0.3);

}.tc-modal-footer {
	border-radius: 0 0 6px 6px;
	
  -webkit-box-shadow: inset 0 1px 0 #fff;
     -moz-box-shadow: inset 0 1px 0 #fff;
          box-shadow: inset 0 1px 0 #fff;
;
}.tc-alert {
	border-radius: 6px;
	
  -webkit-box-shadow: 0 3px 7px rgba(0,0,0,0.6);
     -moz-box-shadow: 0 3px 7px rgba(0,0,0,0.6);
          box-shadow: 0 3px 7px rgba(0,0,0,0.6);

}.tc-notification {
	border-radius: 6px;
	
  -webkit-box-shadow: 0 3px 7px rgba(0,0,0,0.3);
     -moz-box-shadow: 0 3px 7px rgba(0,0,0,0.3);
          box-shadow: 0 3px 7px rgba(0,0,0,0.3);

	text-shadow: 0 1px 0 rgba(255,255,255, 0.8);
}.tc-sidebar-lists .tc-tab-set .tc-tab-divider {
	border-top: none;
	height: 1px;
	
background-image: linear-gradient(left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%);
background-image: -o-linear-gradient(left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%);
background-image: -moz-linear-gradient(left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%);
background-image: -webkit-linear-gradient(left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%);
background-image: -ms-linear-gradient(left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%);

}.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {
	
background-image: linear-gradient(left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%);
background-image: -o-linear-gradient(left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%);
background-image: -moz-linear-gradient(left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%);
background-image: -webkit-linear-gradient(left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%);
background-image: -ms-linear-gradient(left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%);

}.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {
	
background-image: linear-gradient(left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%);
background-image: -o-linear-gradient(left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%);
background-image: -moz-linear-gradient(left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%);
background-image: -webkit-linear-gradient(left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%);
background-image: -ms-linear-gradient(left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%);

}.tc-message-box img {
	
  -webkit-box-shadow: 1px 1px 3px rgba(0,0,0,0.5);
     -moz-box-shadow: 1px 1px 3px rgba(0,0,0,0.5);
          box-shadow: 1px 1px 3px rgba(0,0,0,0.5);

}.tc-plugin-info {
	
  -webkit-box-shadow: 1px 1px 3px rgba(0,0,0,0.5);
     -moz-box-shadow: 1px 1px 3px rgba(0,0,0,0.5);
          box-shadow: 1px 1px 3px rgba(0,0,0,0.5);

}
/*
** Start with the normalize CSS reset, and then belay some of its effects
*//*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */

/*
Document
========
*/

/**
Use a better box model (opinionated).
*/

*,
*::before,
*::after {
  box-sizing: border-box;
}

/**
Use a more readable tab size (opinionated).
*/

:root {
  -moz-tab-size: 4;
  tab-size: 4;
}

/**
1. Correct the line height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
*/

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/*
Sections
========
*/

/**
Remove the margin in all browsers.
*/

body {
  margin: 0;
}

/**
Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
*/

body {
  font-family:
    system-ui,
    -apple-system, /* Firefox supports this but not yet `system-ui` */
    'Segoe UI',
    Roboto,
    Helvetica,
    Arial,
    sans-serif,
    'Apple Color Emoji',
    'Segoe UI Emoji';
}

/*
Grouping content
================
*/

/**
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
}

/*
Text-level semantics
====================
*/

/**
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr[title] {
  text-decoration: underline dotted;
}

/**
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/**
1. Improve consistency of default fonts in all browsers. (https://github.com/sindresorhus/modern-normalize/issues/3)
2. Correct the odd 'em' font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family:
    ui-monospace,
    SFMono-Regular,
    Consolas,
    'Liberation Mono',
    Menlo,
    monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/**
Prevent 'sub' and 'sup' elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
Tabular data
============
*/

/**
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
}

/*
Forms
=====
*/

/**
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
Remove the inheritance of text transform in Edge and Firefox.
1. Remove the inheritance of text transform in Firefox.
*/

button,
select { /* 1 */
  text-transform: none;
}

/**
Correct the inability to style clickable types in iOS and Safari.
*/

button,
[type='button'],
[type='reset'],
[type='submit'] {
  -webkit-appearance: button;
}

/**
Remove the inner border and padding in Firefox.
*/

::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
Restore the focus styles unset by the previous rule.
*/

:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
Remove the additional ':invalid' styles in Firefox.
See: https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/**
Remove the padding so developers are not caught out when they zero out 'fieldset' elements in all browsers.
*/

legend {
  padding: 0;
}

/**
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/**
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/**
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to 'inherit' in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Interactive
===========
*/

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}
*, input[type="search"] {
	box-sizing: border-box;
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
}input[type="search"] {
	outline-offset: initial;
}html button {
	line-height: 1.2;
	color: ;
	fill: ;
	background: ;
	border-color: ;
}button:disabled svg {
	fill: #bbb;
}/*
** Basic element styles
*/html, body {
	font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;;
	text-rendering: optimizeLegibility; /* Enables kerning and ligatures etc. */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}html:-webkit-full-screen {
	background-color: #f4f4f4;
}body.tc-body {
	font-size: 14px;
	line-height: 20px;
	word-wrap: break-word;
	


	color: #333333;
	background-color: #f4f4f4;
	fill: #333333;
}/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */h1 {
	font-size: 2em;
}h1, h2, h3, h4, h5, h6 {
	line-height: 1.2;
	font-weight: normal;
}pre {
	display: block;
	margin-top: 1em;
	margin-bottom: 1em;
	word-break: normal;
	word-wrap: break-word;
	white-space: pre-wrap;
	background-color: #f5f5f5;
	border: 1px solid #cccccc;
	padding: 0 3px 2px;
	border-radius: 3px;
	font-family: "SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace;
}code {
	color: #dd1144;
	background-color: #f7f7f9;
	border: 1px solid #e1e1e8;
	white-space: pre-wrap;
	padding: 0 3px 2px;
	border-radius: 3px;
	font-family: "SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace;
}blockquote {
	border-left: 5px solid #bbb;
	margin-left: 25px;
	padding-left: 10px;
	quotes: "\201C""\201D""\2018""\2019";
}blockquote > div {
	margin-top: 1em;
	margin-bottom: 1em;
}blockquote.tc-big-quote {
	font-family: Georgia, serif;
	position: relative;
	background: #f5f5f5;
	border-left: none;
	margin-left: 50px;
	margin-right: 50px;
	padding: 10px;
	border-radius: 8px;
}blockquote.tc-big-quote cite:before {
	content: "\2014 \2009";
}blockquote.tc-big-quote:before {
	font-family: Georgia, serif;
	color: #bbb;
	content: open-quote;
	font-size: 8em;
	line-height: 0.1em;
	margin-right: 0.25em;
	vertical-align: -0.4em;
	position: absolute;
	left: -50px;
	top: 42px;
}blockquote.tc-big-quote:after {
	font-family: Georgia, serif;
	color: #bbb;
	content: close-quote;
	font-size: 8em;
	line-height: 0.1em;
	margin-right: 0.25em;
	vertical-align: -0.4em;
	position: absolute;
	right: -80px;
	bottom: -20px;
}dl dt {
	font-weight: bold;
	margin-top: 6px;
}button, textarea, input, select {
	outline-color: #5778d8;
}textarea,
input[type=text],
input[type=search],
input[type=""],
input:not([type]) {
	color: #333333;
	background: #ffffff;
}input[type="checkbox"] {
	vertical-align: middle;
}input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
	-webkit-appearance:none;
}.tc-muted {
	color: #bbb;
}svg.tc-image-button {
	padding: 0px 1px 1px 0px;
}.tc-icon-wrapper > svg {
	width: 1em;
	height: 1em;
}kbd {
	display: inline-block;
	padding: 3px 5px;
	font-size: 0.8em;
	line-height: 1.2;
	color: #333333;
	vertical-align: middle;
	background-color: #ffffff;
	border: solid 1px #bbb;
	border-bottom-color: #bbb;
	border-radius: 3px;
	box-shadow: inset 0 -1px 0 #bbb;
}::selection {
	background-color: Highlight;
	color: HighlightText;
	background-color: ;
	color: ;
}form.tc-form-inline {
	display: inline;
}/*
Markdown likes putting code elements inside pre elements
*/
pre > code {
	padding: 0;
	border: none;
	background-color: inherit;
	color: inherit;
}table {
	border: 1px solid #dddddd;
	width: auto;
	max-width: 100%;
	caption-side: bottom;
	margin-top: 1em;
	margin-bottom: 1em;
	/* next 2 elements needed, since normalize 8.0.1 */
	border-collapse: collapse;
	border-spacing: 0;
}table th, table td {
	padding: 0 7px 0 7px;
	border-top: 1px solid #dddddd;
	border-left: 1px solid #dddddd;
}table thead tr td, table th {
	background-color: #f0f0f0;
	font-weight: bold;
}table tfoot tr td {
	background-color: #a8a8a8;
}.tc-csv-table {
	white-space: nowrap;
}.tc-tiddler-frame img,
.tc-tiddler-frame svg,
.tc-tiddler-frame canvas,
.tc-tiddler-frame embed,
.tc-tiddler-frame iframe {
	max-width: 100%;
}.tc-tiddler-body > embed,
.tc-tiddler-body > iframe {
	width: 100%;
	height: 600px;
}:root {
	color-scheme: light;
}/*
** Links
*/button.tc-tiddlylink,
a.tc-tiddlylink {
	text-decoration: none;
	font-weight: 500;
	color: #5778d8;
	-webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */
}.tc-sidebar-lists a.tc-tiddlylink {
	color: #999999;
}.tc-sidebar-lists a.tc-tiddlylink:hover {
	color: #444444;
}button.tc-tiddlylink:hover,
a.tc-tiddlylink:hover {
	text-decoration: underline;
}a.tc-tiddlylink-resolves {
}a.tc-tiddlylink-shadow {
	font-weight: bold;
}a.tc-tiddlylink-shadow.tc-tiddlylink-resolves {
	font-weight: normal;
}a.tc-tiddlylink-missing {
	font-style: italic;
}a.tc-tiddlylink-external {
	text-decoration: underline;
	color: #0000ee;
	background-color: inherit;
}a.tc-tiddlylink-external:visited {
	color: #0000aa;
	background-color: inherit;
}a.tc-tiddlylink-external:hover {
	color: inherit;
	background-color: inherit;
}.tc-drop-down a.tc-tiddlylink:hover {
	color: #ffffff;
}/*
** Drag and drop styles
*/.tc-tiddler-dragger {
	position: relative;
	z-index: -10000;
}.tc-tiddler-dragger-inner {
	position: absolute;
	top: -1000px;
	left: -1000px;
	display: inline-block;
	padding: 8px 20px;
	font-size: 16.9px;
	font-weight: bold;
	line-height: 20px;
	color: #ffffff;
	text-shadow: 0 1px 0 rgba(0, 0, 0, 1);
	white-space: nowrap;
	vertical-align: baseline;
	background-color: #333333;
	border-radius: 20px;
}.tc-tiddler-dragger-cover {
	position: absolute;
	background-color: #f4f4f4;
}.tc-page-container > .tc-dropzone {
	min-height: 100vh;
}.tc-dropzone {
	position: relative;
}.tc-dropzone.tc-dragover:before {
	z-index: 10000;
	display: block;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	background: rgba(0,200,0,0.7);
	text-align: center;
	content: "";
}.tc-droppable > .tc-droppable-placeholder {
	display: none;
}.tc-droppable.tc-dragover > .tc-droppable-placeholder {
	display: block;
	border: 2px dashed rgba(0,200,0,0.7);
}.tc-draggable {
	cursor: move;
}.tc-sidebar-tab-open .tc-droppable-placeholder, .tc-tagged-draggable-list .tc-droppable-placeholder,
.tc-links-draggable-list .tc-droppable-placeholder {
	line-height: 2em;
	height: 2em;
}.tc-sidebar-tab-open-item {
	position: relative;
}.tc-sidebar-tab-open .tc-btn-invisible.tc-btn-mini svg {
	font-size: 0.7em;
	fill: #bbb;
}/*
** Plugin reload warning
*/.tc-plugin-reload-warning {
	z-index: 1000;
	display: block;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	background: #ffe476;
	text-align: center;
}/*
** Buttons
*/button svg, button img, label svg, label img {
	vertical-align: middle;
}.tc-btn-invisible {
	padding: 0;
	margin: 0;
	background: none;
	border: none;
	cursor: pointer;
	color: #333333;
	fill: #333333;
}button:disabled.tc-btn-invisible  {
	cursor: default; 
	color: #bbb;
}.tc-btn-boxed {
	font-size: 0.6em;
	padding: 0.2em;
	margin: 1px;
	background: none;
	border: 1px solid #cccccc;
	border-radius: 0.25em;
}html body.tc-body .tc-btn-boxed svg {
	font-size: 1.6666em;
}.tc-btn-boxed:hover {
	background: #bbb;
	color: #ffffff;
}html body.tc-body .tc-btn-boxed:hover svg {
	fill: #ffffff;
}.tc-btn-rounded {
	font-size: 0.5em;
	line-height: 2;
	padding: 0em 0.3em 0.2em 0.4em;
	margin: 1px;
	border: 1px solid #bbb;
	background: #bbb;
	color: #ffffff;
	border-radius: 2em;
}html body.tc-body .tc-btn-rounded svg {
	font-size: 1.6666em;
	fill: #ffffff;
}.tc-btn-rounded:hover {
	border: 1px solid #bbb;
	background: #ffffff;
	color: #bbb;
}html body.tc-body .tc-btn-rounded:hover svg {
	fill: #bbb;
}.tc-btn-icon svg {
	height: 1em;
	width: 1em;
	fill: #bbb;
}.tc-btn-text {
	margin-left: 7px;
}/* used for documentation "fake" buttons */
.tc-btn-standard {
	line-height: 1.8;
	color: #667;
	background-color: #e0e0e0;
	border: 1px solid #888;
	padding: 2px 1px 2px 1px;
	margin: 1px 4px 1px 4px;
}.tc-btn-big-green {
	display: inline-block;
	padding: 8px;
	margin: 4px 8px 4px 8px;
	background: #34c734;
	color: #ffffff;
	fill: #ffffff;
	border: none;
	border-radius: 2px;
	font-size: 1.2em;
	line-height: 1.4em;
	text-decoration: none;
}.tc-btn-big-green svg,
.tc-btn-big-green img {
	height: 2em;
	width: 2em;
	vertical-align: middle;
	fill: #ffffff;
}.tc-primary-btn {
	background: #5778d8;
}.tc-sidebar-lists input {
	color: #333333;
}.tc-sidebar-lists button {
	color: #333333;
	fill: #333333;
}.tc-sidebar-lists button.tc-btn-mini {
	color: #c0c0c0;
}.tc-sidebar-lists button.tc-btn-mini:hover {
	color: #444444;
}.tc-sidebar-lists button small {
	color: #333333;
}button svg.tc-image-button, button .tc-image-button img {
	height: 1em;
	width: 1em;
}.tc-unfold-banner {
	position: absolute;
	padding: 0;
	margin: 0;
	background: none;
	border: none;
	width: 100%;
	width: calc(100% + 2px);
	margin-left: -43px;
	text-align: center;
	border-top: 2px solid #f8f8f8;
	margin-top: 4px;
}.tc-unfold-banner:hover {
	background: #f8f8f8;
	border-top: 2px solid #dddddd;
}.tc-unfold-banner svg, .tc-fold-banner svg {
	height: 0.75em;
	fill: #cccccc;
}.tc-unfold-banner:hover svg, .tc-fold-banner:hover svg {
	fill: #888888;
}.tc-fold-banner {
	position: absolute;
	padding: 0;
	margin: 0;
	background: none;
	border: none;
	width: 23px;
	text-align: center;
	margin-left: -35px;
	top: 6px;
	bottom: 6px;
}.tc-fold-banner:hover {
	background: #f8f8f8;
}@media (max-width: 959px) {.tc-unfold-banner {
		position: static;
		width: calc(100% + 59px);
	}.tc-fold-banner {
		width: 16px;
		margin-left: -16px;
		font-size: 0.75em;
	}}/*
** Tags and missing tiddlers
*/.tc-tag-list-item {
	position: relative;
	display: inline-block;
}.tc-tags-wrapper {
	margin: 4px 0 14px 0;
}.tc-tags-wrapper .tc-tag-list-item {
	margin-right: 7px;
}.tc-missing-tiddler-label {
	font-style: italic;
	font-weight: normal;
	display: inline-block;
	font-size: 11.844px;
	line-height: 14px;
	white-space: nowrap;
	vertical-align: baseline;
}.tc-block-tags-dropdown > .tc-btn-invisible:hover {
	background-color: #5778d8;
}button.tc-tag-label, span.tc-tag-label {
	display: inline-block;
	padding: 0.16em 0.7em;
	font-size: 0.9em;
	font-weight: normal;
	line-height: 1.2em;
	color: #ffffff;
	white-space: break-spaces;
	vertical-align: baseline;
	background-color: #ec6;
	border-radius: 1em;
}.tc-sidebar-scrollable .tc-tag-label {
	text-shadow: none;
}.tc-untagged-separator {
	width: 10em;
	left: 0;
	margin-left: 0;
	border: 0;
	height: 1px;
	background: #d8d8d8;
}button.tc-untagged-label {
	background-color: #999999;
}.tc-tag-label svg, .tc-tag-label img {
	height: 1em;
	width: 1em;
	margin-right: 3px;
	margin-bottom: 1px;
	vertical-align: bottom;
}.tc-edit-tags button.tc-remove-tag-button svg {
	font-size: 0.7em;
	vertical-align: middle;
}.tc-tag-manager-table .tc-tag-label {
}.tc-tag-manager-tag {
	width: 100%;
}button.tc-btn-invisible.tc-remove-tag-button {
	outline: none;
}.tc-tag-button-selected,
.tc-list-item-selected a.tc-tiddlylink, a.tc-list-item-selected {
	background-color: #5778d8;
	color: #ffffff;
}/*
** Page layout
*/.tc-topbar {
	position: fixed;
	z-index: 1200;
}.tc-topbar-left {
	left: 29px;
	top: 5px;
}.tc-topbar-right {
	top: 5px;
	right: 29px;
}@media (max-width: 959px) {.tc-topbar-right {
		right: 10px;
	}}.tc-topbar button {
	padding: 8px;
}.tc-topbar svg {
	fill: #bbb;
}.tc-topbar button:hover svg {
	fill: #333333;
}@media (max-width: 959px) {.tc-show-sidebar-btn svg.tc-image-chevron-left, .tc-hide-sidebar-btn svg.tc-image-chevron-right {
		transform: rotate(-90deg);
	}}.tc-sidebar-header {
	color: #acacac;
	fill: #acacac;
}.tc-sidebar-header .tc-title a.tc-tiddlylink-resolves {
	font-weight: normal;
}.tc-sidebar-header .tc-sidebar-lists p {
	margin-top: 3px;
	margin-bottom: 3px;
}.tc-sidebar-header .tc-missing-tiddler-label {
	color: #acacac;
}.tc-advanced-search input {
	width: 60%;
}.tc-search a svg {
	width: 1.2em;
	height: 1.2em;
	vertical-align: middle;
}.tc-page-controls {
	margin-top: 14px;
	font-size: 1.5em;
}.tc-page-controls .tc-drop-down {
	font-size: 1rem;
}.tc-page-controls button {
	margin-right: 0.5em;
}.tc-page-controls a.tc-tiddlylink:hover {
	text-decoration: none;
}.tc-page-controls img {
	width: 1em;
}.tc-page-controls svg {
	fill: #aaaaaa;
}.tc-page-controls button:hover svg, .tc-page-controls a:hover svg {
	fill: #000000;
}.tc-sidebar-lists .tc-menu-list-item {
	white-space: nowrap;
}.tc-menu-list-count {
	font-weight: bold;
}.tc-menu-list-subitem {
	padding-left: 7px;
}.tc-story-river {
	position: relative;
}@media (max-width: 959px) {.tc-sidebar-header {
		padding: 14px;
		min-height: 32px;
		margin-top: 0px;
		transition:  min-height 400ms ease-in-out, padding-top 400ms ease-in-out, padding-bottom 400ms ease-in-out;
	}
	
	.tc-story-river {
		position: relative;
		padding: 0;
	}
}@media (min-width: 960px) {.tc-message-box {
		margin: 21px -21px 21px -21px;
	}.tc-sidebar-scrollable {
		position: fixed;
		top: 0px;
		left: 770px;
		bottom: 0;
		right: 0;
		overflow-y: auto;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		margin: 0 0 0 -42px;
		padding: 71px 0 28px 42px;
	}html[dir="rtl"] .tc-sidebar-scrollable {
		left: auto;
		right: 770px;
	}.tc-story-river {
		position: relative;
		left: 0px;
		top: 0px;
		width: 770px;
		padding: 42px 42px 42px 42px;
	}.tc-story-river.tc-static-story-river {
		margin-right: 0;
		padding-right: 42px;
	}}@media print {body.tc-body {
		background-color: transparent;
	}.tc-sidebar-header, .tc-topbar {
		display: none;
	}.tc-story-river {
		margin: 0;
		padding: 0;
	}.tc-story-river .tc-tiddler-frame {
		margin: 0;
		border: none;
		padding: 0;
	}
}/*
** Tiddler styles
*/.tc-tiddler-frame {
	position: relative;
	margin-bottom: 28px;
	background-color: #ffffff;
	border: 1px solid #ffffff;
}
.tc-tiddler-info {
	overflow: hidden;
	padding: 14px 42px 14px 42px;
	background-color: #f8f8f8;
	border-top: 1px solid #dddddd;
	border-bottom: 1px solid #dddddd;
}.tc-tiddler-info p {
	margin-top: 3px;
	margin-bottom: 3px;
}.tc-tiddler-info .tc-tab-buttons button.tc-tab-selected {
	background-color: #f8f8f8;
	border-bottom: 1px solid #f8f8f8;
}@media (max-width: 959px) {.tc-tiddler-info {
		padding: 14px 14px 14px 14px;
	}}.tc-view-field-table {
	width: 100%;
}.tc-view-field-name {
	width: 1%; /* Makes this column be as narrow as possible */
	white-space: nowrap;
	vertical-align: top;
	text-align: right;
	font-style: italic;
	font-weight: normal;
}.tc-view-field-value {
	word-break: break-all;
}@media (max-width: 959px) {
	.tc-tiddler-frame {
		padding: 14px 14px 14px 14px;
		margin-bottom: .5em;
	}.tc-tiddler-info {
		margin: 0 -14px 0 -14px;
	}
}@media (min-width: 960px) {
	.tc-tiddler-frame {
		padding: 28px 42px 42px 42px;
		width: 686px;
		border-radius: 2px;
	}.tc-tiddler-info {
		margin: 0 -42px 0 -42px;
	}
}.tc-site-title,
.tc-titlebar {
	font-weight: normal;
	font-size: 2.35em;
	line-height: 1.35em;
	color: #182955;
	margin: 0;
}.tc-site-title {
	color: #182955;
}.tc-tiddler-title-icon {
	vertical-align: middle;
	margin-right: .1em;
}.tc-system-title-prefix {
	color: #bbb;
}.tc-titlebar h2 {
	font-size: 1em;
	display: inline;
}.tc-titlebar img {
	height: 1em;
}.tc-subtitle {
	font-size: 0.9em;
	color: #c0c0c0;
	font-weight: normal;
}.tc-subtitle .tc-tiddlylink {
	margin-right: .3em;
}.tc-tiddler-missing .tc-title {
	font-style: italic;
	font-weight: normal;
}.tc-tiddler-frame .tc-tiddler-controls {
	float: right;
}.tc-tiddler-controls .tc-drop-down {
	font-size: 0.6em;
}.tc-tiddler-controls .tc-drop-down .tc-drop-down {
	font-size: 1em;
}.tc-tiddler-controls > span > button,
.tc-tiddler-controls > span > span > button,
.tc-tiddler-controls > span > span > span > button {
	vertical-align: baseline;
	margin-left:5px;
}.tc-tiddler-controls button svg, .tc-tiddler-controls button img,
.tc-search button svg, .tc-search a svg {
	fill: #cccccc;
}.tc-tiddler-controls button svg, .tc-tiddler-controls button img {
	height: 0.75em;
}.tc-search button svg, .tc-search a svg {
	height: 1.2em;
	width: 1.2em;
	margin: 0 0.25em;
}.tc-tiddler-controls button.tc-selected svg,
.tc-page-controls button.tc-selected svg  {
	fill: #444444;
}.tc-tiddler-controls button.tc-btn-invisible:hover svg,
.tc-search button:hover svg, .tc-search a:hover svg {
	fill: #888888;
}@media print {
	.tc-tiddler-controls {
		display: none;
	}
}.tc-tiddler-help { /* Help prompts within tiddler template */
	color: #bbb;
	margin-top: 14px;
}.tc-tiddler-help a.tc-tiddlylink {
	color: #888888;
}.tc-tiddler-frame .tc-edit-texteditor {
	width: 100%;
	margin: 4px 0 4px 0;
}.tc-tiddler-frame input.tc-edit-texteditor,
.tc-tiddler-frame textarea.tc-edit-texteditor,
.tc-tiddler-frame iframe.tc-edit-texteditor,
.tc-tiddler-frame select.tc-edit-texteditor {
	padding: 3px 3px 3px 3px;
	border: 1px solid #cccccc;
	line-height: 1.3em;
	font-family: ;
}.tc-tiddler-frame input.tc-edit-texteditor,
.tc-tiddler-frame textarea.tc-edit-texteditor,
.tc-tiddler-frame iframe.tc-edit-texteditor {
	-webkit-appearance: none;
}.tc-tiddler-frame input.tc-edit-texteditor,
.tc-tiddler-frame select.tc-edit-texteditor,
.tc-tiddler-frame textarea.tc-edit-texteditor {
	background-color: #f8f8f8;
}.tc-tiddler-frame iframe.tc-edit-texteditor {
	background-color: #ffffff;
}.tc-tiddler-frame .tc-edit-fields input.tc-edit-fieldeditor,
.tc-tiddler-frame .tc-edit-fields select.tc-edit-fieldeditor,
.tc-tiddler-frame .tc-edit-fields textarea.tc-edit-fieldeditor {
	margin: 0;
	padding: 2px 3px;
}.tc-tiddler-frame .tc-binary-warning {
	width: 100%;
	height: 5em;
	text-align: center;
	padding: 3em 3em 6em 3em;
	background: #ffe476;
	border: 1px solid #b99e2f;
}canvas.tc-edit-bitmapeditor  {
	border: 6px solid #ffffff;
	cursor: crosshair;
	-moz-user-select: none;
	-webkit-user-select: none;
	-ms-user-select: none;
	margin-top: 6px;
	margin-bottom: 6px;
}.tc-edit-bitmapeditor-width {
	display: block;
}.tc-edit-bitmapeditor-height {
	display: block;
}.tc-tiddler-body {
	clear: both;
}.tc-tiddler-frame .tc-tiddler-body {
	font-size: 15px;
	line-height: 22px;
}.tc-titlebar, .tc-tiddler-edit-title {
	overflow: hidden; /* https://github.com/Jermolene/TiddlyWiki5/issues/282 */
}html body.tc-body.tc-single-tiddler-window {
	margin: 1em;
	background: #ffffff;
}.tc-single-tiddler-window img,
.tc-single-tiddler-window svg,
.tc-single-tiddler-window canvas,
.tc-single-tiddler-window embed,
.tc-single-tiddler-window iframe {
	max-width: 100%;
}/*
** Editor
*/.tc-editor-toolbar {
	margin-top: 8px;
}.tc-editor-toolbar button {
	vertical-align: middle;
	background-color: #cccccc;
	color: #444444;
	fill: #444444;
	border-radius: 4px;
	padding: 3px;
	margin: 2px 0 2px 4px;
}.tc-editor-toolbar button.tc-text-editor-toolbar-item-adjunct {
	margin-left: 1px;
	width: 1em;
	border-radius: 8px;
}.tc-editor-toolbar button.tc-text-editor-toolbar-item-start-group {
	margin-left: 11px;
}.tc-editor-toolbar button.tc-selected {
	background-color: #5778d8;
}.tc-editor-toolbar button svg {
	width: 1.6em;
	height: 1.2em;
}.tc-editor-toolbar button:hover {
	background-color: #444444;
	fill: #ffffff;
	color: #ffffff;
}.tc-editor-toolbar .tc-text-editor-toolbar-more {
	white-space: normal;
}.tc-editor-toolbar .tc-text-editor-toolbar-more button {
	display: inline-block;
	padding: 3px;
	width: auto;
}.tc-editor-toolbar .tc-search-results {
	padding: 0;
}.tc-editor-toolbar button.tc-editortoolbar-stamp-button + .tc-popup .tc-drop-down > p {
	margin: 0;
	padding: 0;
}.tc-editor-toolbar button.tc-editortoolbar-stamp-button + .tc-popup .tc-drop-down a.tc-tiddlylink {
	font-weight: normal;
}/*
** Adjustments for fluid-fixed mode
*/@media (min-width: 960px) {.tc-story-river {
		padding-right: 0;
		position: relative;
		width: auto;
		left: 0;
		margin-left: 0px;
		margin-right: 49.69962153453308vw;
	}.tc-tiddler-frame {
		width: 100%;
	}.tc-sidebar-scrollable {
		left: auto;
		bottom: 0;
		right: 0;
		width: 49.69962153453308vw;
	}body.tc-body .tc-storyview-zoomin-tiddler {
		width: 100%;
		width: calc(100% - 42px);
	}}/*
** Toolbar buttons
*/.tc-page-controls svg.tc-image-new-button {
	fill: ;
}.tc-page-controls svg.tc-image-options-button {
	fill: ;
}.tc-page-controls svg.tc-image-save-button {
	fill: ;
}.tc-tiddler-controls button svg.tc-image-info-button {
	fill: ;
}.tc-tiddler-controls button svg.tc-image-edit-button {
	fill: ;
}.tc-tiddler-controls button svg.tc-image-close-button {
	fill: ;
}.tc-tiddler-controls button svg.tc-image-delete-button {
	fill: ;
}.tc-tiddler-controls button svg.tc-image-cancel-button {
	fill: ;
}.tc-tiddler-controls button svg.tc-image-done-button {
	fill: ;
}/*
** Tiddler edit mode
*/.tc-tiddler-edit-frame em.tc-edit {
	color: #bbb;
	font-style: normal;
}.tc-edit-type-dropdown a.tc-tiddlylink-missing {
	font-style: normal;
}.tc-type-selector .tc-edit-typeeditor {
	width: auto;
}.tc-type-selector-dropdown-wrapper {
	display: inline-block;
}.tc-type-selector-dropdown-wrapper {
		min-width: calc(32ch + 4em);
	}.tc-type-selector-dropdown-wrapper input.tc-edit-typeeditor {
		min-width: 32ch;
	}.tc-edit-tags {
	border: 1px solid #cccccc;
	padding: 4px 8px 4px 8px;
}.tc-edit-add-tag {
	display: inline-block;
}.tc-edit-add-tag .tc-add-tag-name input {
	width: 50%;
}.tc-edit-add-tag .tc-keyboard {
	display:inline;
}.tc-edit-tags .tc-tag-label {
	display: inline-block;
}.tc-edit-tags-list {
	margin: 14px 0 14px 0;
}.tc-remove-tag-button {
	padding-left: 4px;
}.tc-tiddler-preview {
	overflow: auto;
}.tc-tiddler-preview-preview {
	float: right;
	width: 49%;
	border: 1px solid #cccccc;
	margin: 4px 0 3px 3px;
	padding: 3px 3px 3px 3px;
}.tc-tiddler-frame .tc-tiddler-preview .tc-edit-texteditor {
	width: 49%;
}.tc-tiddler-frame .tc-tiddler-preview canvas.tc-edit-bitmapeditor {
	max-width: 49%;
}.tc-edit-fields {
	width: 100%;
}.tc-edit-fields.tc-edit-fields-small {
	margin-top: 0;
	margin-bottom: 0;
}.tc-edit-fields table, .tc-edit-fields tr, .tc-edit-fields td {
	border: none;
	padding: 4px;
}.tc-edit-fields > tbody > .tc-edit-field:nth-child(odd) {
	background-color: #f0f4f0;
}.tc-edit-fields > tbody > .tc-edit-field:nth-child(even) {
	background-color: #e0e8e0;
}.tc-edit-field-name {
	text-align: right;
}.tc-edit-field-value input {
	width: 100%;
}.tc-edit-field-remove {
}.tc-edit-field-remove svg {
	height: 1em;
	width: 1em;
	fill: #bbb;
	vertical-align: middle;
}.tc-edit-field-add-name-wrapper input.tc-edit-texteditor {
	width: auto;
}.tc-edit-field-add-name-wrapper {
	display: inline-block;
}.tc-edit-field-add-value {
	display: inline-block;
}@media (min-width: 960px) {.tc-edit-field-add-value {
		width: 35%;
	}}.tc-edit-field-add-button {
	display: inline-block;
	width: 10%;
}/*
** Tiddler editor dropzone
*/.tc-dropzone-editor {
	position:relative;
}.tc-dropzone-editor.tc-dragover .tc-editor-toolbar::after{
	z-index: 10000;
	top:0;
	left:0;
	right:0;
	height: 100%;
	background: rgba(0,200,0,0.7);
	content: "";
	pointer-events: none;
	position: absolute;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: #ffffff;
	border: 4px dashed #999999;
	font-weight: bold;
	font-size: 150%;
	opacity: 0.8;
	color: #333333;
}.tc-editor-importpopup {
	width: 100%;
	height: 100%;
}.tc-editor-import {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	background: #f5f5f5;
	box-shadow: 2px 2px 10px #333333;
	padding: 10px;
	width: 96%;
	border: 1px solid #cccccc;
	text-align:center;
}.tc-editor-import img {
	max-height: 500px;
}/*
** Storyview Classes
*/.tc-viewswitcher .tc-image-button {
	margin-right: .3em;
}.tc-storyview-zoomin-tiddler {
	position: absolute;
	display: block;
	width: 100%;
}@media (min-width: 960px) {.tc-storyview-zoomin-tiddler {
		width: calc(100% - 84px);
	}}/*
** Dropdowns
*/.tc-btn-dropdown {
	text-align: left;
}.tc-btn-dropdown svg, .tc-btn-dropdown img {
	height: 1em;
	width: 1em;
	fill: #bbb;
}.tc-drop-down-wrapper {
	position: relative;
}.tc-drop-down {
	min-width: 380px;
	border: 1px solid #bbb;
	background-color: #ffffff;
	padding: 7px 0 7px 0;
	margin: 4px 0 0 0;
	white-space: nowrap;
	text-shadow: none;
	line-height: 1.4;
}.tc-drop-down .tc-drop-down {
	margin-left: 14px;
}.tc-drop-down button svg, .tc-drop-down a svg  {
	fill: #333333;
}.tc-drop-down button:disabled svg {
	fill: #bbb;
}.tc-drop-down button.tc-btn-invisible:hover svg {
	fill: #ffffff;
}.tc-drop-down .tc-drop-down-info {
	padding-left: 14px;
}.tc-drop-down p {
	padding: 0 14px 0 14px;
}.tc-drop-down svg {
	width: 1em;
	height: 1em;
}.tc-drop-down img {
	width: 1em;
}.tc-drop-down a, .tc-drop-down button {
	display: block;
	padding: 0 14px 0 14px;
	width: 100%;
	text-align: left;
	color: #333333;
	line-height: 1.4;
}.tc-drop-down .tc-tab-set .tc-tab-buttons button {
	display: inline-block;
	width: auto;
	margin-bottom: 0px;
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
}.tc-drop-down .tc-prompt {
	padding: 0 14px;
}.tc-drop-down .tc-chooser {
	border: none;
}.tc-drop-down .tc-chooser .tc-swatches-horiz {
	font-size: 0.4em;
	padding-left: 1.2em;
}.tc-drop-down .tc-file-input-wrapper {
	width: 100%;
}.tc-drop-down .tc-file-input-wrapper button {
	color: #333333;
}.tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button {
	color: #ffffff;
	background-color: #5778d8;
	text-decoration: none;
}.tc-drop-down .tc-tab-buttons button {
	background-color: #ececec;
}.tc-drop-down .tc-tab-buttons button.tc-tab-selected {
	background-color: #fff;
	border-bottom: 1px solid #fff;
}.tc-drop-down-bullet {
	display: inline-block;
	width: 0.5em;
}.tc-drop-down .tc-tab-contents a {
	padding: 0 0.5em 0 0.5em;
}.tc-block-dropdown-wrapper {
	position: relative;
}.tc-block-dropdown {
	position: absolute;
	min-width: 220px;
	border: 1px solid #bbb;
	background-color: #ffffff;
	padding: 7px 0;
	margin: 4px 0 0 0;
	white-space: nowrap;
	z-index: 1000;
	text-shadow: none;
}.tc-block-dropdown.tc-search-drop-down {
	margin-left: -12px;
}.tc-block-dropdown a {
	display: block;
	padding: 4px 14px 4px 14px;
}.tc-block-dropdown.tc-search-drop-down a {
	display: block;
	padding: 0px 10px 0px 10px;
}.tc-drop-down .tc-dropdown-item-plain,
.tc-block-dropdown .tc-dropdown-item-plain {
	padding: 4px 14px 4px 7px;
}.tc-drop-down .tc-dropdown-item,
.tc-block-dropdown .tc-dropdown-item {
	padding: 4px 14px 4px 7px;
	color: #bbb;
}.tc-block-dropdown a.tc-tiddlylink:hover {
	color: #ffffff;
	background-color: #5778d8;
	text-decoration: none;
}.tc-search-results {
	padding: 0 7px 0 7px;
}.tc-image-chooser, .tc-colour-chooser {
	white-space: normal;
}.tc-image-chooser a,
.tc-colour-chooser a {
	display: inline-block;
	vertical-align: top;
	text-align: center;
	position: relative;
}.tc-image-chooser a {
	border: 1px solid #bbb;
	padding: 2px;
	margin: 2px;
	width: 4em;
	height: 4em;
}.tc-colour-chooser a {
	padding: 3px;
	width: 2em;
	height: 2em;
	vertical-align: middle;
}.tc-image-chooser a:hover,
.tc-colour-chooser a:hover {
	background: #5778d8;
	padding: 0px;
	border: 3px solid #5778d8;
}.tc-image-chooser a svg,
.tc-image-chooser a img {
	display: inline-block;
	width: auto;
	height: auto;
	max-width: 3.5em;
	max-height: 3.5em;
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
}/*
** Modals
*/.tc-modal-wrapper {
	position: fixed;
	overflow: auto;
	overflow-y: scroll;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 900;
}.tc-modal-backdrop {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 1000;
	background-color: #333333;
}.tc-modal {
	z-index: 1100;
	background-color: #ffffff;
	border: 1px solid #999999;
}@media (max-width: 55em) {
	.tc-modal {
		position: fixed;
		top: 1em;
		left: 1em;
		right: 1em;
	}.tc-modal-body {
		overflow-y: auto;
		max-height: 400px;
		max-height: 60vh;
	}
}@media (min-width: 55em) {
	.tc-modal {
		position: fixed;
		top: 2em;
		left: 25%;
		width: 50%;
	}.tc-modal-body {
		overflow-y: auto;
		max-height: 400px;
		max-height: 60vh;
	}
}.tc-modal-header {
	padding: 9px 15px;
	border-bottom: 1px solid #eeeeee;
}.tc-modal-header h3 {
	margin: 0;
	line-height: 30px;
}.tc-modal-header img, .tc-modal-header svg {
	width: 1em;
	height: 1em;
}.tc-modal-body {
	padding: 15px;
}.tc-modal-footer {
	padding: 14px 15px 15px;
	margin-bottom: 0;
	text-align: right;
	background-color: #f5f5f5;
	border-top: 1px solid #dddddd;
}.tc-modal-prevent-scroll {
	overflow: hidden;
}/*
** Centered modals
*/
.tc-modal-centered .tc-modal {
	width: auto;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) !important;
}/*
** Notifications
*/.tc-notification {
	position: fixed;
	top: 14px;
	right: 42px;
	z-index: 1300;
	max-width: 280px;
	padding: 0 14px 0 14px;
	background-color: #ffffdd;
	border: 1px solid #999999;
}/*
** Tabs
*/.tc-tab-set.tc-vertical {
	display: -webkit-flex;
	display: flex;
}.tc-tab-buttons {
	font-size: 0.85em;
	padding-top: 1em;
	margin-bottom: -2px;
}.tc-tab-buttons.tc-vertical  {
	z-index: 100;
	display: block;
	padding-top: 14px;
	vertical-align: top;
	text-align: right;
	margin-bottom: inherit;
	margin-right: -1px;
	max-width: 33%;
	-webkit-flex: 0 0 auto;
	flex: 0 0 auto;
}.tc-tab-buttons button.tc-tab-selected {
	color: #666666;
	background-color: #ffffff;
	border-left: 1px solid #d8d8d8;
	border-top: 1px solid #d8d8d8;
	border-right: 1px solid #d8d8d8;
}.tc-tab-buttons button {
	color: #666666;
	padding: 3px 5px 3px 5px;
	margin-right: 0.3em;
	font-weight: normal;
	border: none;
	background: inherit;
	background-color: #d8d8d8;
	border-left: 1px solid #cccccc;
	border-top: 1px solid #cccccc;
	border-right: 1px solid #cccccc;
	border-top-left-radius: 2px;
	border-top-right-radius: 2px;
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
}.tc-tab-buttons.tc-vertical button {
	display: block;
	width: 100%;
	margin-top: 3px;
	margin-right: 0;
	text-align: right;
	background-color: #d8d8d8;
	border-left: 1px solid #cccccc;
	border-bottom: 1px solid #cccccc;
	border-right: none;
	border-top-left-radius: 2px;
	border-bottom-left-radius: 2px;
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}.tc-tab-buttons.tc-vertical button.tc-tab-selected {
	background-color: #ffffff;
	border-right: 1px solid #ffffff;
}.tc-tab-divider {
	border-top: 1px solid #d8d8d8;
}.tc-tab-divider.tc-vertical  {
	display: none;
}.tc-tab-content {
	margin-top: 14px;
}.tc-tab-content.tc-vertical  {
	display: inline-block;
	vertical-align: top;
	padding-top: 0;
	padding-left: 14px;
	border-left: 1px solid #cccccc;
	-webkit-flex: 1 0 70%;
	flex: 1 0 70%;
	overflow: auto;
}.tc-sidebar-lists .tc-tab-buttons {
	margin-bottom: -1px;
}.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {
	background-color: #f4f4f4;
	color: ;
	border-left: 1px solid #d8d8d8;
	border-top: 1px solid #d8d8d8;
	border-right: 1px solid #d8d8d8;
}.tc-sidebar-lists .tc-tab-buttons button {
	background-color: #e0e0e0;
	color: #666666;
	border-left: 1px solid #cccccc;
	border-top: 1px solid #cccccc;
	border-right: 1px solid #cccccc;
}.tc-sidebar-lists .tc-tab-divider {
	border-top: 1px solid #e4e4e4;
}.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {
	display: block;
	width: 100%;
	background-color: #e0e0e0;
	border-top: none;
	border-left: none;
	border-bottom: none;
	border-right: 1px solid #ccc;
	margin-bottom: inherit;
}.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {
	background-color: #f4f4f4;
	border: none;
}/*
** Manager
*/.tc-manager-wrapper {
	
}.tc-manager-controls {
	
}.tc-manager-control {
	margin: 0.5em 0;
}.tc-manager-control select {
	max-width: 100%;
}.tc-manager-list {
	width: 100%;
	border-top: 1px solid #bbb;
	border-left: 1px solid #bbb;
	border-right: 1px solid #bbb;
}.tc-manager-list-item {}.tc-manager-list-item-heading {
	display: block;
	width: 100%;
	text-align: left;
	border-bottom: 1px solid #bbb;
	padding: 3px;
}.tc-manager-list-item-heading-selected {
	font-weight: bold;
	color: #ffffff;
	fill: #ffffff;
	background-color: #333333;
}.tc-manager-list-item-heading:hover {
	background: #5778d8;
	color: #ffffff;
}.tc-manager-list-item-content {
	display: flex;
}.tc-manager-list-item-content-sidebar {
	flex: 1 0;
	background: #f8f8f8;
	border-right: 0.5em solid #bbb;
	border-bottom: 0.5em solid #bbb;
	white-space: nowrap;
}.tc-manager-list-item-content-item-heading {
	display: block;
	width: 100%;
	text-align: left;
	background: #bbb;
	text-transform: uppercase;
	font-size: 0.6em;
	font-weight: bold;
	padding: 0.5em 0 0.5em 0;
}.tc-manager-list-item-content-item-body {
	padding: 0 0.5em 0 0.5em;
}.tc-manager-list-item-content-item-body > pre {
	margin: 0.5em 0 0.5em 0;
	border: none;
	background: inherit;
}.tc-manager-list-item-content-tiddler {
	flex: 3 1;
	border-left: 0.5em solid #bbb;
	border-right: 0.5em solid #bbb;
	border-bottom: 0.5em solid #bbb;
}.tc-manager-list-item-content-item-body > table {
	border: none;
	padding: 0;
	margin: 0;
}.tc-manager-list-item-content-item-body > table td {
	border: none;
}.tc-manager-icon-editor > button {
	width: 100%;
}.tc-manager-icon-editor > button > svg,
.tc-manager-icon-editor > button > button {
	width: 100%;
	height: auto;
}/*
** Import table
*/.tc-import-table {
	width: 100%;
}.tc-import-table svg.tc-image-edit-button {
	max-width: unset;
}.tc-import-table th:first-of-type {
	width: 10%;
}.tc-import-table th:last-of-type {
	width: 30%;
}.tc-import-table .tc-row-disabled {
	background: #88888810;
	opacity: 0.8;
}.tc-import-table .tc-row-warning {
	background: #ffc9c950;
}/*
** Alerts
*/.tc-alerts {
	position: fixed;
	top: 28px;
	left: 0;
	right: 0;
	max-width: 50%;
	z-index: 20000;
}.tc-alert {
	position: relative;
	margin: 14px;
	padding: 7px;
	border: 1px solid #b99e2f;
	background-color: #ffe476;
}.tc-alert-toolbar {
	position: absolute;
	top: 7px;
	right: 7px;
	line-height: 0;
}.tc-alert-toolbar svg {
	fill: #b99e2f;
}.tc-alert-subtitle {
	color: #b99e2f;
	font-weight: bold;
	font-size: 0.8em;
	margin-bottom: 0.5em;
}.tc-alert-body > p {
	margin: 0;
}.tc-alert-highlight {
	color: #881122;
}@media (min-width: 960px) {.tc-static-alert {
		position: relative;
	}.tc-static-alert-inner {
		position: absolute;
		z-index: 100;
	}}.tc-static-alert-inner {
	padding: 0 2px 2px 42px;
	color: #aaaaaa;
}/*
** Floating drafts list
*/.tc-drafts-list {
	z-index: 2000;
	position: fixed;
	font-size: 0.8em;
	left: 0;
	bottom: 0;
}.tc-drafts-list a {
	margin: 0 0.5em;
	padding: 4px 4px;
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
	border: 1px solid #ffffff;
	border-bottom: none;
	background: #ff0000;
	color: #ffffff;
	fill: #ffffff;
}.tc-drafts-list a:hover {
	text-decoration: none;
	background: #333333;
	color: #ffffff;
	fill: #ffffff;
}.tc-drafts-list a svg {
	width: 1em;
	height: 1em;
	vertical-align: text-bottom;
}/*
** Control panel
*/.tc-control-panel td {
	padding: 4px;
}.tc-control-panel table, .tc-control-panel table input, .tc-control-panel table textarea {
	width: 100%;
}.tc-plugin-info {
	display: flex;
	text-shadow: none;
	border: 1px solid #bbb;
	fill: #bbb;
	background-color: #ffffff;
	margin: 0.5em 0 0.5em 0;
	padding: 4px;
	align-items: center;
}.tc-sidebar-lists a.tc-tiddlylink.tc-plugin-info {
	color: #5778d8;
}.tc-plugin-info-sub-plugins .tc-plugin-info {
	margin: 0.5em;
	background: #ffffff;
}.tc-plugin-info-sub-plugin-indicator {
	margin: -16px 1em 0 2em;
}.tc-plugin-info-sub-plugin-indicator button {
	color: #ffffff;
	background: #333333;
	border-radius: 8px;
	padding: 2px 7px;
	font-size: 0.75em;
}.tc-plugin-info-sub-plugins .tc-plugin-info-dropdown {
	margin-left: 1em;
	margin-right: 1em;
}.tc-plugin-info-disabled {
	background: -webkit-repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);
	background: repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);
}.tc-plugin-info-disabled:hover {
	background: -webkit-repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);
	background: repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);
}a.tc-tiddlylink.tc-plugin-info:hover {
	text-decoration: none;
	background-color: #5778d8;
	color: #ffffff;
	fill: #333333;
}a.tc-tiddlylink.tc-plugin-info:hover > .tc-plugin-info-chunk > svg {
	fill: #ffffff;
}.tc-plugin-info-chunk {
	margin: 2px;
}.tc-plugin-info-chunk.tc-plugin-info-toggle {
	flex-grow: 0;
	flex-shrink: 0;
	line-height: 1;
}.tc-plugin-info-chunk.tc-plugin-info-icon {
	flex-grow: 0;
	flex-shrink: 0;
	line-height: 1;
}.tc-plugin-info-chunk.tc-plugin-info-description {
	flex-grow: 1;
}.tc-plugin-info-chunk.tc-plugin-info-buttons {
	font-size: 0.8em;
	line-height: 1.2;
	flex-grow: 0;
	flex-shrink: 0;
	text-align: right;
}.tc-plugin-info-chunk.tc-plugin-info-description h1 {
	font-size: 1em;
	line-height: 1.2;
	margin: 2px 0 2px 0;
}.tc-plugin-info-chunk.tc-plugin-info-description h2 {
	font-size: 0.8em;
	line-height: 1.2;
	margin: 2px 0 2px 0;
}.tc-plugin-info-chunk.tc-plugin-info-description div {
	font-size: 0.7em;
	line-height: 1.2;
	margin: 2px 0 2px 0;
}.tc-plugin-info-chunk.tc-plugin-info-toggle img, .tc-plugin-info-chunk.tc-plugin-info-toggle svg {
	width: 1em;
	height: 1em;
}.tc-plugin-info-chunk.tc-plugin-info-icon img, .tc-plugin-info-chunk.tc-plugin-info-icon svg {
	width: 2em;
	height: 2em;
}.tc-plugin-info-dropdown {
	border: 1px solid #bbb;
	background: #ffffff;
	margin-top: -8px;
}.tc-plugin-info-dropdown-message {
	background: #ecf2ff;
	padding: 0.5em 1em 0.5em 1em;
	font-weight: bold;
	font-size: 0.8em;
}.tc-plugin-info-dropdown-body {
	padding: 1em 1em 0 1em;
	background: #ffffff;
}.tc-plugin-info-sub-plugins {
	padding: 0.5em;
	margin: 0 1em 1em 1em;
	background: #ffffdd;
}.tc-install-plugin {
	font-weight: bold;
	background: green;
	color: white;
	fill: white;
	border-radius: 4px;
	padding: 3px;
}.tc-install-plugin.tc-reinstall-downgrade {
	background: red;
}.tc-install-plugin.tc-reinstall {
	background: blue;
}.tc-install-plugin.tc-reinstall-upgrade {
	background: orange;
}.tc-check-list {
	line-height: 2em;
}.tc-check-list .tc-image-button {
	height: 1.5em;
}/*
** Message boxes
*/.tc-message-box {
	border: 1px solid #cfd6e6;
	background: #ecf2ff;
	padding: 0px 21px 0px 21px;
	font-size: 12px;
	line-height: 18px;
	color: #547599;
}.tc-message-box svg {
	width: 1em;
	height: 1em;
	vertical-align: text-bottom;
}/*
** Pictures
*/.tc-bordered-image {
	border: 1px solid #bbb;
	padding: 5px;
	margin: 5px;
}/*
** Floats
*/.tc-float-right {
	float: right;
}/*
** Chooser
*/.tc-chooser {
	border-right: 1px solid #f0f0f0;
	border-left: 1px solid #f0f0f0;
}.tc-chooser-item {
	border-bottom: 1px solid #f0f0f0;
	border-top: 1px solid #f0f0f0;
	padding: 2px 4px 2px 14px;
}.tc-drop-down .tc-chooser-item {
	padding: 2px;
}.tc-chosen,
.tc-chooser-item:hover {
	background-color: #f0f0f0;
	border-color: #a8a8a8;
}.tc-chosen .tc-tiddlylink {
	cursor:default;
}.tc-chooser-item .tc-tiddlylink {
	display: block;
	text-decoration: none;
	background-color: transparent;
}.tc-chooser-item:hover .tc-tiddlylink:hover {
	text-decoration: none;
}.tc-drop-down .tc-chosen .tc-tiddlylink,
.tc-drop-down .tc-chooser-item .tc-tiddlylink:hover {
	color: #333333;
}.tc-chosen > .tc-tiddlylink:before {
	margin-left: -10px;
	position: relative;
	content: "» ";
}.tc-chooser-item svg,
.tc-chooser-item img{
	width: 1em;
	height: 1em;
	vertical-align: middle;
}.tc-language-chooser .tc-image-button img {
	width: 2em;
	vertical-align: -0.15em;
}/*
** Palette swatches
*/.tc-swatches-horiz {
}.tc-swatches-horiz .tc-swatch {
	display: inline-block;
}.tc-swatch {
	width: 2em;
	height: 2em;
	margin: 0.4em;
	border: 1px solid #888;
}input.tc-palette-manager-colour-input {
	width: 100%;
	padding: 0;
}/*
** Table of contents
*/.tc-sidebar-lists .tc-table-of-contents {
	white-space: nowrap;
}.tc-table-of-contents button {
	color: #acacac;
}.tc-table-of-contents svg {
	width: 0.7em;
	height: 0.7em;
	vertical-align: middle;
	fill: #acacac;
}.tc-table-of-contents ol {
	list-style-type: none;
	padding-left: 0;
}.tc-table-of-contents ol ol {
	padding-left: 1em;
}.tc-table-of-contents li {
	font-size: 1.0em;
	font-weight: bold;
}.tc-table-of-contents li a {
	font-weight: bold;
}.tc-table-of-contents li li {
	font-size: 0.95em;
	font-weight: normal;
	line-height: 1.4;
}.tc-table-of-contents li li a {
	font-weight: normal;
}.tc-table-of-contents li li li {
	font-size: 0.95em;
	font-weight: normal;
	line-height: 1.5;
}.tc-table-of-contents li li li li {
	font-size: 0.95em;
	font-weight: normal;
}.tc-tabbed-table-of-contents {
	display: -webkit-flex;
	display: flex;
}.tc-tabbed-table-of-contents .tc-table-of-contents {
	z-index: 100;
	display: inline-block;
	padding-left: 1em;
	max-width: 50%;
	-webkit-flex: 0 0 auto;
	flex: 0 0 auto;
	background: #d8d8d8;
	border-left: 1px solid #cccccc;
	border-top: 1px solid #cccccc;
	border-bottom: 1px solid #cccccc;
}.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a,
.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {
	display: block;
	padding: 0.12em 1em 0.12em 0.25em;
}.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a {
	border-top: 1px solid #d8d8d8;
	border-left: 1px solid #d8d8d8;
	border-bottom: 1px solid #d8d8d8;
}.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a:hover {
	text-decoration: none;
	border-top: 1px solid #cccccc;
	border-left: 1px solid #cccccc;
	border-bottom: 1px solid #cccccc;
	background: #cccccc;
}.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {
	border-top: 1px solid #cccccc;
	border-left: 1px solid #cccccc;
	border-bottom: 1px solid #cccccc;
	background: #ffffff;
	margin-right: -1px;
}.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a:hover {
	text-decoration: none;
}.tc-tabbed-table-of-contents .tc-tabbed-table-of-contents-content {
	display: inline-block;
	vertical-align: top;
	padding-left: 1.5em;
	padding-right: 1.5em;
	border: 1px solid #cccccc;
	-webkit-flex: 1 0 50%;
	flex: 1 0 50%;
}/*
** Dirty indicator
*/html body.tc-dirty span.tc-dirty-indicator, html body.tc-dirty span.tc-dirty-indicator svg {
	fill: #ff0000;
	color: #ff0000;
}/*
** File inputs
*/.tc-file-input-wrapper {
	position: relative;
	overflow: hidden;
	display: inline-block;
	vertical-align: middle;
}.tc-file-input-wrapper input[type=file] {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	font-size: 999px;
	max-width: 100%;
	max-height: 100%;
	filter: alpha(opacity=0);
	opacity: 0;
	outline: none;
	background: white;
	cursor: pointer;
	display: inline-block;
}::-webkit-file-upload-button {
	cursor:pointer;
}/*
** Thumbnail macros
*/.tc-thumbnail-wrapper {
	position: relative;
	display: inline-block;
	margin: 6px;
	vertical-align: top;
}.tc-thumbnail-right-wrapper {
	float:right;
	margin: 0.5em 0 0.5em 0.5em;
}.tc-thumbnail-image {
	text-align: center;
	overflow: hidden;
	border-radius: 3px;
}.tc-thumbnail-image svg,
.tc-thumbnail-image img {
	filter: alpha(opacity=1);
	opacity: 1;
	min-width: 100%;
	min-height: 100%;
	max-width: 100%;
}.tc-thumbnail-wrapper:hover .tc-thumbnail-image svg,
.tc-thumbnail-wrapper:hover .tc-thumbnail-image img {
	filter: alpha(opacity=0.8);
	opacity: 0.8;
}.tc-thumbnail-background {
	position: absolute;
	border-radius: 3px;
}.tc-thumbnail-icon svg,
.tc-thumbnail-icon img {
	width: 3em;
	height: 3em;
	
  -webkit-filter: drop-shadow(2px 2px 4px rgba(0,0,0,0.3));
     -moz-filter: drop-shadow(2px 2px 4px rgba(0,0,0,0.3));
          filter: drop-shadow(2px 2px 4px rgba(0,0,0,0.3));

}.tc-thumbnail-wrapper:hover .tc-thumbnail-icon svg,
.tc-thumbnail-wrapper:hover .tc-thumbnail-icon img {
	fill: #fff;
	
  -webkit-filter: drop-shadow(3px 3px 4px rgba(0,0,0,0.6));
     -moz-filter: drop-shadow(3px 3px 4px rgba(0,0,0,0.6));
          filter: drop-shadow(3px 3px 4px rgba(0,0,0,0.6));

}.tc-thumbnail-icon {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	display: -webkit-flex;
	-webkit-align-items: center;
	-webkit-justify-content: center;
	display: flex;
	align-items: center;
	justify-content: center;
}.tc-thumbnail-caption {
	position: absolute;
	background-color: #777;
	color: #fff;
	text-align: center;
	bottom: 0;
	width: 100%;
	filter: alpha(opacity=0.9);
	opacity: 0.9;
	line-height: 1.4;
	border-bottom-left-radius: 3px;
	border-bottom-right-radius: 3px;
}.tc-thumbnail-wrapper:hover .tc-thumbnail-caption {
	filter: alpha(opacity=1);
	opacity: 1;
}/*
** Diffs
*/.tc-diff-equal {
	background-color: ;
	color: #333333;
}.tc-diff-insert {
	background-color: #aaefad;
	color: #333333;
}.tc-diff-delete {
	background-color: #ffc9c9;
	color: #333333;
}.tc-diff-invisible {
	background-color: ;
	color: #bbb;
}.tc-diff-tiddlers th {
	text-align: right;
	background: #ffffff;
	font-weight: normal;
	font-style: italic;
}.tc-diff-tiddlers pre {
	margin: 0;
	padding: 0;
	border: none;
	background: none;
}/*
** Errors
*/.tc-error {
	background: #f00;
	color: #fff;
}/*
** Tree macro
*/.tc-tree div {
	padding-left: 14px;
}.tc-tree ol {
	list-style-type: none;
	padding-left: 0;
	margin-top: 0;
}.tc-tree ol ol {
	padding-left: 1em;
}.tc-tree button {
	color: #acacac;
}.tc-tree svg {
	fill: #acacac;
}.tc-tree span svg {
	width: 1em;
	height: 1em;
	vertical-align: baseline;
}.tc-tree li span {
	color: lightgray;
}select {
	color: ;
	background: ;
}/*
** Utility classes for SVG icons
*/.tc-fill-background {
	fill: #ffffff;
}/*
** Flexbox utility classes
*/.tc-flex {
	display: -webkit-flex;
	display: flex;
}.tc-flex-column {
	flex-direction: column;
}.tc-flex-row {
	flex-direction: row;
}.tc-flex-grow-1 {
	flex-grow: 1;
}.tc-flex-grow-2 {
	flex-grow: 2;
}/*
** Other utility classes
*/.tc-tiny-gap {
	margin-left: .25em;
	margin-right: .25em;
}.tc-tiny-gap-left {
	margin-left: .25em;
}.tc-tiny-gap-right {
	margin-right: .25em;
}.tc-small-gap {
	margin-left: .5em;
	margin-right: .5em;
}.tc-small-gap-left {
	margin-left: .5em;
}.tc-small-gap-right {
	margin-right: .5em;
}.tc-big-gap {
	margin-left: 1em;
	margin-right: 1em;
}.tc-big-gap-left {
	margin-left: 1em;
}.tc-big-gap-right {
	margin-right: 1em;
}.tc-word-break {
	word-break: break-all;
}
body.tc-dirty span.tc-dirty-indicator svg {
	transition: fill 250ms ease-in-out;
}body .tc-image-cloud-idle {
	fill: #ffffff;
	transition: opacity 250ms ease-in-out;
	opacity: 1;
	display: unset;
}body.tc-dirty .tc-image-cloud-idle {
	opacity: 0;
	display: none;
}body .tc-image-cloud-progress {
	transition: opacity 250ms ease-in-out;
	transform-origin: 50% 50%;
	transform: rotate(359deg);
	animation: animation-rotate-slow 2s infinite linear;
	fill: #ffffff;
	display: none;
	opacity: 0;
}body.tc-dirty .tc-image-cloud-progress {
	opacity: 1;
	display: unset;
}@keyframes animation-rotate-slow {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: scale(359deg);
	}
}
/* Container */
.gk0wk-notionpagebg {
  width: 100%;
  position: relative;
}.gk0wk-notionpagebg-c, .gk0wk-notionpagebg-ci {
  top: -28px;
}.gk0wk-notionpagebg .gk0wk-notionpagebg-image {
  width: calc(100% - -42px - -42px);
  left: -42px;
  height: 300px;
  overflow: hidden;
  position: relative;
}.gk0wk-notionpagebg-ci {
  height: calc(300px + 65px / 2 + -28px + 10px);
  pointer-events: none;
}.gk0wk-notionpagebg-c {
  height: calc(300px + -28px + 30px + 10px);
}@media (max-width: 960px) {
  .gk0wk-notionpagebg-c, .gk0wk-notionpagebg-ci {
    top: -14px;
  }
  .gk0wk-notionpagebg .gk0wk-notionpagebg-image {
    width: calc(100% - -14px - -14px);
    left: -14px;
    height: 300px;
  }
  .gk0wk-notionpagebg-ci {
    height: calc(300px + 65px / 2 + -14px + 10px);
  }
  .gk0wk-notionpagebg-c {
    height: calc(300px + -14px + 30px + 10px);
  }
}.gk0wk-notionpagebg p {
    margin: 0;
}/* Buttons */.gk0wk-notionpagebg button {
  background: transparent;
  border: none;
}.gk0wk-notionpagebg-icon1,
.gk0wk-notionpagebg-icon2,
.gk0wk-notionpageb-changecover,
.gk0wk-notionbg-addbuttons button {
  color: #333333 !important;
  fill: #333333 !important;
  user-select: none;
  cursor: pointer;
  transition: all 400ms;
}.gk0wk-notionpagebg-icon1,
.gk0wk-notionpagebg-icon2 {
  font-size: 65px;
  font-family: "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Noto Color Emoji", "Segoe UI Symbol", "Android Emoji", EmojiSymbols;
  padding: 4px !important;
  pointer-events: auto;
}.gk0wk-notionpagebg-icon2 {
  position: relative;
  top: calc(-65px / 1.6);
}.gk0wk-notionpagebg-icon1:hover,
.gk0wk-notionpagebg-icon2:hover {
  background: #ffffff !important;
}.gk0wk-notionbg-addbuttons {
  width: 100%;
  height: 30px;
  opacity: 0;
  display: flex;
  margin-top: 5px;
  transition: all 400ms;
}.gk0wk-notionpagebg:hover .gk0wk-notionbg-addbuttons,
.gk0wk-notionpagebg:hover .gk0wk-notionpageb-changecover {
  opacity: 1;
}.gk0wk-notionbg-addbuttons button {
  padding: 3px 6px;
  margin-right: 12px;
  opacity: 0.8;
}.gk0wk-notionpageb-changecover {
  position: absolute;
  top: 265px;
  right: 10px;
  padding: 4px 6px !important;
  filter: contrast(90%);
  opacity: 0;
  pointer-events: auto;
  transition: all 400ms;
}.gk0wk-notionpageb-changecover:hover {
  background: #ffffff;
}/* Page Cover */.gk0wk-notionpagebg .gk0wk-notionpagebg-image img {
  position: relative;
  top: 50%;
  transform: translateY(-50%);
}/* Change Page Cover */.gk0wk-notionpageb-changecover-box {
  border-radius: 3px;
  
  -webkit-box-shadow: #00000070 0 2px 6px;
     -moz-box-shadow: #00000070 0 2px 6px;
          box-shadow: #00000070 0 2px 6px;

  background: #ffffff;
  padding: 10px 6px 20px 6px;
  width: 318px;
  pointer-events: auto;
}/* Icon Selector */.gk0wk-notionbg-icon-selection-box {
  border-radius: 3px;
  
  -webkit-box-shadow: #00000070 0 2px 6px;
     -moz-box-shadow: #00000070 0 2px 6px;
          box-shadow: #00000070 0 2px 6px;

  overflow: auto;
  filter: contrast(90%);
  background: #ffffff;
  max-height: min(60vh, 390px);
  max-width: 480px;
  pointer-events: auto;
}.gk0wk-notionbg-icon-selection-type {
  padding: 6px 0;
}.gk0wk-notionbg-icon-selection-typetitle {
  color: #bbb;
  display: block;
  padding-left: 14px;
  padding-right: 14px;
  margin-top: 6px;
  margin-bottom: 8px;
  font-size: 1em;
  font-weight: 600;
  line-height: 120%;
  user-select: none;
  text-transform: uppercase;
}.gk0wk-notionbg-icon-selection-icons {
  display: flex;
  flex-flow: row wrap;
  align-items: flex-start;
  background: transparent;
  padding: 0px 0px 0px 12px;
  margin-bottom: 1px;
  font-family: "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Noto Color Emoji", "Segoe UI Symbol", "Android Emoji", EmojiSymbols;
}.gk0wk-notionbg-icon-selection-icons > button {
  user-select: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 3px;
  width: 32px;
  height: 32px;
  font-size: 24px;
}.gk0wk-notionbg-icon-selection-type button {
  background: transparent !important;
  border: none !important;
  border-radius: 3px;
  padding: 4px 8px;
  transition: all 400ms;
  color: #333333 !important;
  fill: #333333 !important;
}.gk0wk-notionbg-icon-selection-type button:hover {
  background: #ffffff !important;
  color: #333333 !important;
  fill: #333333 !important;
  filter: contrast(85%);
}.gk0wk-notionbg-icon-selection-type button:active {
  background: #ffffff !important;
  color: #333333 !important;
  fill: #333333 !important;
  filter: contrast(70%);
}.gk0wk-notionbg-selection-box-emojifilter,
.gk0wk-notionbg-selection-box-tiddlerurlinput,
.gk0wk-notionpageb-changecover-box > div {
  display: flex;
  align-items: center;
  width: calc(100% - 28px);
  font-size: 14px;
  line-height: 20px;
  padding: 3px 6px;
  position: relative;
  border-radius: 3px;
  cursor: text;
  height: 28px;
  margin: 10px 14px 0px 14px;
  background: #ffffff;
  filter: contrast(90%);
}.gk0wk-notionbg-selection-box-tiddlerurlinput {
  margin-bottom: 10px;
}.gk0wk-notionbg-selection-box-emojifilter > textarea,
.gk0wk-notionbg-selection-box-tiddlerurlinput > textarea,
.gk0wk-notionpageb-changecover-box > div > input,
.gk0wk-notionbg-selection-box-tiddlerurlinput > input {
  height: 22px !important;
  font-size: inherit;
  line-height: inherit;
  border: none;
  background: none;
  width: 100%;
  display: block;
  resize: none;
  padding: 0px;
  width: 100%;
}.gk0wk-notionbg-selection-box-emojifilter > textarea:focus,
.gk0wk-notionbg-selection-box-tiddlerurlinput > textarea:focus,
.gk0wk-notionpageb-changecover-box > div > input:focus,
.gk0wk-notionbg-selection-box-tiddlerurlinput > input:focus {
  outline: none;
}.gk0wk-notionbg-selection-box-header {
  position: sticky;
  top: 0;
  width: 100%;
  background: #ffffff;
  padding-bottom: 6px;
  z-index: 1000;
}.gk0wk-notionbg-selection-box-tabs {
  width: 100%;
  padding-left: 8px;
  -webkit-box-shadow: #888888 0px 1px 0px;
  -moz-box-shadow: #888888 0px 1px 0px;
  box-shadow: #888888 0px 1px 0px;
}.gk0wk-notionbg-selection-box-tabs button {
  padding: 6px 8px 10px 8px !important;
  line-height: 1.2;
  margin: 4px 4px 0 4px !important;
  cursor: pointer;
  white-space: nowrap;
  color: #333333;
  fill: #333333;
  border-radius: 3px 3px 0 0 !important;
  transition: all 400ms;
}.gk0wk-notionbg-selection-box-tabs button:hover {
  background: #ffffff !important;
  filter: contrast(85%);
}.gk0wk-notionbg-selection-box-tabs button.gk0wk-notionbg-tab-selected {
  font-weight: 600;
  -webkit-box-shadow: #333333 0px 2px 0px;
  -moz-box-shadow: #333333 0px 2px 0px;
  box-shadow: #333333 0px 2px 0px;
}
div#gk0wk-sidebar-resize-area {
	height: 100vh;
	width: 10px;
	position: absolute;
	top: 0;
	left: -5px;
	cursor: ew-resize;
	transition: all 400ms;
}div#gk0wk-sidebar-resize-area:hover {
	background: #5778d8;
}
.tc-tiddler-frame.bimlas-locator-explanation {
  max-width: 400px;
}
.bimlas-locator-explanation svg {
  width: 1rem;
  height: 1rem;
}
.tc-drop-down button.bimlas-locator {
  width: auto;
  padding: 0;
  display: inline-block;
  background-color: inherit;
}
ol.bimlas-locator {
  list-style-type: none;
  margin: 0;
  padding-left: 0;
}
ol.bimlas-locator ol {
  margin-left: 0.75em;
  padding-left: 0.3em;
  border-left: 1px dashed;
}
li.toc-item.bimlas-locator, .tc-menu-list-item.bimlas-locator {
  margin-top: 3px;
  margin-bottom: 0;
}
.tc-menu-list-item.bimlas-locator > .tc-droppable {
  display: inline-block;
}
.tc-block-dropdown.tc-search-drop-down .bimlas-locator a {
  padding: 0;
}
.tc-block-dropdown.tc-search-drop-down .bimlas-locator a:hover {
  background-color: initial;
}
button.bimlas-locator svg {
  margin: 0 0.25em;
}
button.bimlas-locator.active svg {
  fill: #ff0000;
}
.bimlas-locator.right {
  float: right;
  margin-right: 1em;
}
.bimlas-locator.context-settings {
  border-width: 1px;
  border-style: dashed;
  padding: 0.5em;
}body .tc-page-container-wrapper.tc-modal-displayed{-webkit-filter:inherit;-moz-filter:inherit;filter:inherit}body .tc-modal-wrapper{z-index:1010}body .tc-modal-wrapper .tc-modal-header svg{vertical-align:sub}body .tc-modal-wrapper .tc-modal-header h3{line-height:10px}body .tc-modal-wrapper .tc-modal-body{min-height:250px;max-height:70vh;padding-top:0px;padding-bottom:0px;overflow:auto}body .tc-modal-wrapper .tc-modal-footer{padding:8px}body .tc-modal-wrapper .tc-modal-footer .tmap-dialog-button{font-weight:bold}body .tc-modal-wrapper .tc-modal-footer .tmap-hidden-close-button{display:none}table.tmap-table tr:nth-child(odd),.tc-modal-body table.tmap-config-table tr:nth-child(odd){background-color:#F0F0F0}table.tmap-table tr:nth-child(even),.tc-modal-body table.tmap-config-table tr:nth-child(even){background-color:#FFFFFF}.tmap-save-canvas-preview{text-align:center;background:lightgray}.tmap-save-canvas-preview img{background-color:white;max-width:100%;max-height:100px;border:1px solid red}.tmap-list-separator{display:block;background-color:#efefef;margin:10px 0 5px 0;cursor:default;border-bottom:1px dotted gray;font-weight:bold;font-size:0.8em}.tmap-unicode-icon{width:1em;display:inline-block;text-align:center;color:black}html .tmap-link{color:#5778D8}html .tmap-link:hover{color:white;background:#5778D8}html .tmap-small-list,html .tmap-smaller-list,html .tmap-very-small-list{overflow:auto;min-height:2em;max-height:9em;display:block}html .tmap-smaller-list{max-height:7em}html .tmap-very-small-list{max-height:5empx}html .tc-tiddler-controls button.tmap-active-button svg{fill:#888888}html #tmap-node-filter-dialog #tmap-filter-tips{font-size:0.8em}html #tmap-node-filter-dialog textarea{height:100px;max-height:300px;overflow:auto;width:100%;font-size:11px;font-family:"Courier New", Courier, monospace}@media (max-width: 960px){.tc-sidebar-scrollable .tmap-desktop-editor .tmap-widget:not(.tmap-fullscreen){display:none}}@media (min-width: 960px){.tc-sidebar-scrollable .tmap-mobile-editor{display:none}.tc-modal-wrapper{z-index:1010}.tc-modal-wrapper .tc-modal{boder:1px solid #999999;left:calc(50% - 400px);width:802px}.tc-modal-wrapper .tc-modal-body{left:calc(50% - 400px);width:800px}}@-o-keyframes fadein-keyframes{0%{opacity:0}100%{opacity:1}}@-moz-keyframes fadein-keyframes{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes fadein-keyframes{0%{opacity:0}100%{opacity:1}}@keyframes flash fadein-keyframes{0%{opacity:0}100%{opacity:1}}@-o-keyframes fadeout-keyframes{0%{opacity:1}100%{opacity:0}}@-moz-keyframes fadeout-keyframes{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes fadeout-keyframes{0%{opacity:1}100%{opacity:0}}@keyframes flash fadeout-keyframes{0%{opacity:1}100%{opacity:0}}.tmap-config-widget{background:#F0F0F0;padding:5px;margin:5px 0;box-sizing:border-box;display:block}.tmap-config-widget .vis-network{display:none}.tmap-config-widget .vis-configuration-wrapper{width:100%}.tmap-config-widget .vis-configuration-wrapper .vis-config-rangeinput{height:inherit;margin-left:4px}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item{width:100%;height:inherit;background:none;padding-left:0px;left:0}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item.tmap-vis-config-item-active .vis-config-label::after{content:"(inherited)";position:absolute;display:inline-block;margin-left:10px;-o-animation:fadein-keyframes 1s;-moz-animation:fadein-keyframes 1s;-webkit-animation:fadein-keyframes 1s;animation:fadein-keyframes 1s;content:"✔";color:green;font-weight:bold;font-size:15px}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item button.tmap-config-item-reset{vertical-align:top;margin-left:5px}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item .vis-config-range{width:150px}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item .vis-config-range::-moz-range-track{width:150px !important}.tmap-config-widget .vis-configuration-wrapper .vis-configuration.vis-config-item .vis-config-label{width:150px}.tmap-config-widget::after{clear:both;content:"";display:block}.tmap-flash-message{border:1px solid lightgray;padding:5px;margin:6px 0;display:block;color:#333333}.tmap-flash-message.tmap-info,.tmap-flash-message.tmap-plain,.tmap-flash-message.tmap-neutral{background:#F0F0F0}.tmap-flash-message.tmap-info::before,.tmap-flash-message.tmap-plain::before,.tmap-flash-message.tmap-neutral::before{content:"i";display:inline-block;border-radius:50%;width:0.8em;border:2px solid;font-family:serif;text-align:center;height:0.8em;font-weight:bold;line-height:0.8em;vertical-align:text-top;margin-right:2px}.tmap-flash-message.tmap-valid,.tmap-flash-message.tmap-success{background:#D1EED4}.tmap-flash-message.tmap-valid::before,.tmap-flash-message.tmap-success::before{content:"i";display:inline-block;border-radius:50%;width:0.8em;border:2px solid;font-family:serif;text-align:center;height:0.8em;font-weight:bold;line-height:0.8em;vertical-align:text-top;margin-right:2px}.tmap-flash-message.tmap-warning{background:#FFF6D1}.tmap-flash-message.tmap-warning::before{content:"";display:inline-block;background:url();display:inline-block;width:1em;height:1em;background-size:100% 100%;vertical-align:text-top;margin-right:2px}.tmap-flash-message.tmap-malformed,.tmap-flash-message.tmap-invalid,.tmap-flash-message.tmap-danger{background:#EED5D1}.tmap-flash-message.tmap-malformed::before,.tmap-flash-message.tmap-invalid::before,.tmap-flash-message.tmap-danger::before{content:"";display:inline-block;background:url();display:inline-block;width:1em;height:1em;background-size:100% 100%;vertical-align:text-top;margin-right:2px}.tmap-widget{background:#FFFFFF;width:auto;position:relative;border:1px dotted lightgray;padding:2px;color:#666;display:block}.tmap-widget .tmap-download-canvas{display:none}.tmap-widget.tmap-click-to-use:not(.tmap-fullscreen) .vis-network:not(.vis-active){cursor:pointer}.tmap-widget.tmap-click-to-use:not(.tmap-fullscreen) .vis-network:not(.vis-active) .vis-navigation{display:none}.tmap-widget.tmap-click-to-use:not(.tmap-fullscreen) .vis-network:not(.vis-active):hover:before{color:gray;background:white;content:"Click to use";font-size:14px;font-weight:bold;right:calc(50% - 65px - 5px);position:absolute;text-align:center;top:calc(50% - 14px - 5px);width:130px;z-index:2000;padding:5px;pointer-events:none;background-color:rgba(255,255,255,0.3)}.tmap-widget .tmap-loading-bar{display:none;position:absolute;text-align:center;font-size:2em;padding:10px;top:50%;background:rgba(245,245,245,0.5);z-index:1;width:250px;margin:auto;left:0px;right:0px}.tmap-widget .tmap-vis-graph{height:calc(100% - 35px)}.tmap-widget.tmap-no-buttons .vis-navigation{display:none}.tmap-widget.tmap-advanced-editor .tmap-topbar{background:#d6d9d8}.tmap-widget.tmap-advanced-editor .tmap-topbar .tmap-active-button{color:#488DCD}.tmap-widget.tmap-advanced-editor .tmap-topbar .tmap-active-button svg{fill:#488DCD}.tmap-widget.tmap-advanced-editor .tmap-topbar .tmap-unicode-button{font-size:1.5em;vertical-align:bottom;height:28px;fill:#555555}.tmap-widget.tmap-advanced-editor .tmap-topbar .tmap-unicode-button svg{vertical-align:baseline}.tmap-widget .tmap-menu-bar{width:100%}.tmap-widget .tmap-topbar{background:#F5F5F5;border-bottom:1px solid lightgray;padding:3px 5px;height:35px;position:relative}.tmap-widget .tmap-topbar .tmap-view-label{width:100%;text-align:center;font-weight:bold;padding-top:3px}.tmap-widget .tmap-topbar .tmap-focus-button{position:absolute;right:10px;top:6px}.tmap-widget .tmap-topbar .tmap-focus-button input{width:140px}.tmap-widget .tmap-topbar .tmap-search-dropdown{position:relative}.tmap-widget .tmap-topbar .tmap-search-dropdown .tc-drop-down{position:absolute;z-index:999;right:0px}.tmap-widget .tmap-topbar [hidden]{display:none}.tmap-widget .tmap-topbar select{width:30%;max-width:200px;word-wrap:initial;padding:0px;height:28px}.tmap-widget .tmap-topbar button{line-height:inherit;color:#666}.tmap-widget .tmap-topbar>*{display:inline-block}.tmap-widget .tmap-topbar .tmap-separator:after{color:#bdbdbd;margin:3px;content:" | "}.tmap-widget .tmap-topbar .tc-edit-add-tag .tc-add-tag-name input{width:70%}.tmap-widget .tmap-topbar .tc-sidebar-header{text-shadow:none}.tmap-widget .tmap-topbar .tc-edit-tags{border:none;padding:inherit;box-shadow:none}.tmap-widget.tmap-static-mode .tmap-topbar{height:initial}.tmap-widget.tmap-static-mode .tmap-vis-graph{text-align:center;cursor:not-allowed}.tmap-widget.tmap-static-mode .tmap-vis-graph:not(.tmap-graph-placeholder):hover::before{box-shadow:10px 10px 5px lightgray;color:gray;background:white;content:"Static";font-size:18px;font-weight:bold;left:50%;margin-left:-100px;position:absolute;text-align:center;top:50px;width:200px;z-index:2000;padding:5px;pointer-events:none}.tmap-widget.tmap-static-mode .tmap-vis-graph.tmap-graph-placeholder::before{content:"No Preview";display:block;text-align:center;padding:20px}.tmap-widget .tc-drop-down{min-width:170px;padding:5px;margin:5px 0}.tmap-widget .tc-drop-down button,.tmap-widget .tc-drop-down a{padding:0 2px;text-decoration:none}.tmap-widget .tc-drop-down button:hover,.tmap-widget .tc-drop-down a:hover{color:#ffffff}.tmap-widget .tc-drop-down button svg,.tmap-widget .tc-drop-down a svg{vertical-align:middle}.tmap-widget .tc-block-dropdown{width:370px;min-width:370px;padding:5px;margin:15px 0 0 -370px}.tmap-widget .tc-block-dropdown a{display:inline;padding:0px}.tmap-widget.tmap-plain-design{border:none;padding:0px}.tmap-widget.tmap-plain-design .tmap-topbar{display:none}.tc-sidebar-scrollable .tmap-widget{position:absolute;min-height:350px}.tmap-widget div.vis-network .vis-edit-mode{height:26px}.tmap-widget div.vis-network .vis-manipulation{height:34px;border-top:1px solid #d6d9d8;background:rgba(245,245,245,0.7)}.tmap-widget div.vis-network .vis-navigation .vis-button.tmap-button-enabled{right:15px}.tmap-widget div.vis-network .vis-navigation .vis-button.tmap-button-enabled.tmap-fullscreen-button{bottom:90px;background-image:url()}.tmap-widget div.vis-network .vis-navigation .vis-button.tmap-button-enabled.tmap-halfscreen-button{bottom:130px;background-image:url()}.tmap-widget div.vis-network .vis-navigation .vis-button:hover{box-shadow:0 0 3px 3px rgba(75,75,75,0.3)}.tmap-widget div.vis-network .vis-navigation .vis-button:hover:before{background:beige;display:block;color:black;padding:3px;position:relative;border:1px solid lightgray;width:80px;left:-100px;top:-50px;z-index:1000;text-align:center}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-up:before{left:30px;content:"Scroll up"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-down:before{left:30px;content:"Scroll down"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-right:before{left:30px;content:"Scroll right"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-left:before{left:30px;content:"Scroll left"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-zoomOut:before{content:"Zoom out"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-zoomIn:before{content:"Zoom in"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.vis-zoomExtends:before{content:"Fit whole graph"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.tmap-fullscreen-button:before{content:"Toggle Fullscreen"}.tmap-widget div.vis-network .vis-navigation .vis-button:hover.tmap-halfscreen-button:before{content:"Toggle Halfscreen"}.tc-dropzone>.tc-story-river .tmap-widget .vis-navigation .tmap-halfscreen-button{display:none}.tc-dropzone>.tc-story-river .tmap-widget:not(.tmap-fullscreen) .vis-navigation .vis-button{display:none}.tc-dropzone>.tc-story-river .tmap-widget:hover .vis-navigation .vis-button.tmap-fullscreen-button{display:block}.tc-dropzone>.tc-story-river .tmap-widget:hover .vis-navigation .vis-button.vis-zoomExtends{display:block}body.tmap-has-fullscreen-widget{overflow:hidden}body.tmap-has-fullscreen-widget .tmap-widget.tmap-fullscreen{background:white !important;height:100% !important;width:100% !important;position:fixed !important;top:0 !important;right:0 !important;bottom:0 !important;left:0 !important;z-index:999 !important;border:none !important;margin:0 !important}body.tmap-has-fullscreen-widget .tc-dropzone>*.tmap-has-fullscreen-widget{background:white !important;height:100% !important;width:100% !important;position:fixed !important;top:0 !important;right:0 !important;bottom:0 !important;left:0 !important;z-index:999 !important;border:none !important;margin:0 !important}body.tmap-has-fullscreen-widget .tc-dropzone>*:not(.tmap-has-fullscreen-widget){display:none}body.tmap-has-halfscreen-widget .tmap-widget.tmap-halfscreen{background:white !important;height:100% !important;width:100% !important;position:fixed !important;top:0 !important;right:0 !important;bottom:0 !important;left:0 !important;z-index:999 !important;border:none !important;margin:0 !important;position:absolute !important;border-left:1px solid lightgray !important}.tc-modal-footer .tmap-hidden-close-button{display:none}.tmap-modal-content{position:relative;padding:1em 0;padding-top:0}.tmap-modal-content table tr td{vertical-align:top}.tmap-modal-content :not(pre)>code{padding:1px;font-size:0.9em;position:relative;top:-1px}.tmap-modal-content :not(pre)>code{color:#666}.tmap-modal-content .tc-tab-set .tc-tab-content{margin-top:0.5em}.tmap-modal-content .tc-image-button{font-size:14px}.tmap-modal-content fieldset{margin:0px}.tmap-modal-content fieldset legend{font-weight:bold}.tc-modal-body .tmap-modal-editor>p{margin:0px}.tc-modal-body .tmap-modal-editor .tmap-template-select select{width:50%}.tc-modal-body .tmap-modal-editor .tc-tiddler-frame{margin:auto;width:auto}.tc-modal-body .tmap-modal-editor .tc-tiddler-frame .tc-tiddler-controls{display:none}.tc-modal-body .tmap-modal-editor .tc-tiddler-frame .tc-tiddler-title{display:none}.tc-modal-body table{margin:6px 0;border:none;width:100%}.tc-modal-body table td,.tc-modal-body table th{border:1px solid lightgray}.tc-modal-body table.tmap-key-value-table th{width:30%;background-color:#F0F0F0}.tc-modal-body table.tmap-config-table.tmap-large-input tr td:last-child{width:20%}.tc-modal-body table.tmap-config-table.tmap-small-input tr td:last-child{width:60%}.tc-modal-body table.tmap-config-table tr td{border:none;vertical-align:top;padding:5px}.tc-modal-body table.tmap-config-table tr td:first-child{width:15%}.tc-modal-body table.tmap-config-table tr td:last-child{width:40%}.tc-modal-body table.tmap-config-table tr td input:not([type=radio]),.tc-modal-body table.tmap-config-table tr td textarea,.tc-modal-body table.tmap-config-table tr td select{width:100%;word-wrap:normal}.tc-modal-body table.tmap-config-table tr td textarea{height:100%}.tc-modal-body table.tmap-config-table tr td .tmap-no-stretch input,.tc-modal-body table.tmap-config-table tr td .tmap-no-stretch textarea,.tc-modal-body table.tmap-config-table tr td .tmap-no-stretch select{width:auto}.tc-modal-body table.tmap-config-table tr td div.tmap-button-wrapper{text-align:center}.tc-modal-body table.tmap-config-table tr td .tmap-note{margin-top:0.5em}.tc-modal-body table.tmap-config-table tr td .tmap-description{font-style:italic}#tmap-element-type-manager>div:first-child{height:50vh;float:left;width:21%;background:linear-gradient(90deg, #f5f5f5 0%, #fff 50%)}#tmap-element-type-manager>div:first-child .tmap-searchbar{padding:1em 0 0 0}#tmap-element-type-manager>div:first-child .tmap-searchbar input{width:calc(100% - 36px)}#tmap-element-type-manager>div:first-child .tmap-searchbar button{width:30px;float:right}#tmap-element-type-manager>div:first-child ul{height:calc(100% - 65px);overflow:auto;margin-top:1em;padding:0}#tmap-element-type-manager>div:first-child ul.no-bullets li{list-style:none}#tmap-element-type-manager>div:first-child ul li{white-space:nowrap}#tmap-element-type-manager>div:first-child ul li .tmap-ranking{width:30px;display:inline-block}#tmap-element-type-manager>div:last-child{height:100%;width:calc(79% - 15px);float:right}#tmap-element-type-manager>div:last-child .tc-tab-set .tc-tab-content{overflow:auto;height:50vh}.tmap-manage-node-types .tmap-edge-type-specific{display:none !important}.tmap-manage-edge-types .tmap-node-type-specific{display:none !important}.tmap-modal-fullscreen-editor .tc-tab-content p{margin:1em 0}.tmap-has-pending-template{background-color:#C1EDC4}#tmap-search-table td{border:none;padding-left:0px}#tmap-search-table td:first-child{width:30px}#tmap-search-table b{display:inline-block;width:40px;text-align:right}#tmap-search-table ul{padding-left:20px;margin:1em 0 0 0}#tmap-search-table ul li{list-style:inherit}#tmap-search-table ul button{text-align:left}button.tmap-go-back{margin-bottom:1em;font-weight:bold}.tmap-badges>span,.tmap-badge{background:gray;font-size:11px;color:white;padding:3px 4px;display:inline-block;font-weight:bold;border-radius:2px;line-height:1em;cursor:help}.tmap-badges>span.tmap-red-flag,.tmap-badge.tmap-red-flag{background:red}.tmap-popup{display:none;position:absolute;opacity:0;transition:opacity 0.3s ease}.tmap-popup.tmap-popup-active{opacity:1}.tmap-tooltip{box-shadow:3px 3px 10px rgba(0,0,0,0.2);min-width:100px;min-height:50px;max-width:240px;max-height:140px;padding:5px;resize:both;overflow:auto;cursor:auto;font-family:verdana;font-size:14px;background-color:#f5f4ed;border:1px solid #808074;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}.tmap-tooltip[style*="height"]{max-height:none !important}.tmap-tooltip[style*="width"]{max-width:none !important}.tmap-quick-connect{font-size:0.7em}.tmap-quick-connect p{padding-left:0;padding-right:0}.tmap-quick-connect .tc-drop-down{padding:5px;width:250px;white-space:normal;line-height:1em;position:absolute;z-index:1000;right:50px;background:linear-gradient(45deg, #f5f5f5 0%, #fff 50%, #f5f5f5 100%)}.tmap-quick-connect .tc-drop-down:first-child{padding-top:0;margin-top:0}.tmap-quick-connect .tc-drop-down .title{margin:1.5em 0 0.5em 0;font-weight:bold;color:gray}.tmap-quick-connect .tc-drop-down select{width:80px;word-wrap:initial}.tmap-quick-connect .tc-drop-down table{width:100%;border:none;margin:0.5em 0}.tmap-quick-connect .tc-drop-down table td,.tmap-quick-connect .tc-drop-down table th{padding:3px 3px 3px 0;vertical-align:middle;font-weight:normal;border:none}.tmap-quick-connect .tc-drop-down table td table,.tmap-quick-connect .tc-drop-down table th table{margin:0}.tmap-quick-connect .tc-drop-down .tmap-quick-connect-search-bar,.tmap-quick-connect .tc-drop-down .tmap-quick-connect-existing-bar{background:#F1F1F1;margin-top:0;border-bottom:1px solid #D5D5D5;border-top:1px solid #D5D5D5}.tmap-quick-connect .tc-drop-down table.tmap-quick-connect-search-bar td,.tmap-quick-connect .tc-drop-down th{padding:5px}.tmap-quick-connect .tc-drop-down .tmap-quick-connect-existing-bar{padding:5px}.tmap-quick-connect .tc-drop-down .tmap-connection-table th,.tmap-quick-connect .tc-drop-down .tmap-connection-table td{text-align:left;padding:1px 1px 1px 0}.tmap-quick-connect .tc-drop-down .tmap-connection-table button{width:20px;padding:0px}.tmap-quick-connect .tc-drop-down .tmap-scroll-table{height:120px;overflow:auto;display:block}.tmap-quick-connect .tc-drop-down hr{border:0;height:0;border-top:1px solid rgba(0,0,0,0.1);border-bottom:1px solid rgba(255,255,255,0.3)}.tmap-quick-connect .tc-drop-down a{display:inline;padding:0;color:#5778d8;background:transparent}.tmap-quick-connect .tc-drop-down a:hover{background:transparent;color:#5778d8;text-decoration:underline}.tmap-quick-connect .tc-drop-down button{display:inline-block;padding:0px 3px;text-align:center;color:#333333;line-height:1.0}.tmap-quick-connect .tc-drop-down button:hover{color:#ffffff}.tmap-quick-connect .tc-drop-down button svg{fill:inherit}.tmap-quick-connect .tc-drop-down button svg:hover{fill:#ffffff}
.vis .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-active{box-shadow:0 0 10px #86d5f8}.vis [class*="span"]{min-height:0;width:auto}div.vis-configuration{position:relative;display:block;float:left;font-size:12px}div.vis-configuration-wrapper{display:block;width:700px}div.vis-configuration-wrapper::after{clear:both;content:"";display:block}div.vis-configuration.vis-config-option-container{display:block;width:495px;background-color:#fff;border:2px solid #f7f8fa;border-radius:4px;margin-top:20px;left:10px;padding-left:5px}div.vis-configuration.vis-config-button{display:block;width:495px;height:25px;vertical-align:middle;line-height:25px;background-color:#f7f8fa;border:2px solid #ceced0;border-radius:4px;margin-top:20px;left:10px;padding-left:5px;cursor:pointer;margin-bottom:30px}div.vis-configuration.vis-config-button.hover{background-color:#4588e6;border:2px solid #214373;color:#fff}div.vis-configuration.vis-config-item{display:block;float:left;width:495px;height:25px;vertical-align:middle;line-height:25px}div.vis-configuration.vis-config-item.vis-config-s2{left:10px;background-color:#f7f8fa;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s3{left:20px;background-color:#e4e9f0;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s4{left:30px;background-color:#cfd8e6;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-header{font-size:18px;font-weight:bold}div.vis-configuration.vis-config-label{width:120px;height:25px;line-height:25px}div.vis-configuration.vis-config-label.vis-config-s3{width:110px}div.vis-configuration.vis-config-label.vis-config-s4{width:100px}div.vis-configuration.vis-config-colorBlock{top:1px;width:30px;height:19px;border:1px solid #444;border-radius:2px;padding:0;margin:0;cursor:pointer}input.vis-configuration.vis-config-checkbox{left:-5px}input.vis-configuration.vis-config-rangeinput{position:relative;top:-5px;width:60px;padding:1px;margin:0;pointer-events:none}input.vis-configuration.vis-config-range{-webkit-appearance:none;border:0 solid white;background-color:rgba(0,0,0,0);width:300px;height:20px}input.vis-configuration.vis-config-range::-webkit-slider-runnable-track{width:300px;height:5px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dedede',endColorstr='#c8c8c8',GradientType=0);border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-webkit-slider-thumb{-webkit-appearance:none;border:1px solid #14334b;height:17px;width:17px;border-radius:50%;background:#3876c2;background:-moz-linear-gradient(top,#3876c2 0,#385380 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#3876c2),color-stop(100%,#385380));background:-webkit-linear-gradient(top,#3876c2 0,#385380 100%);background:-o-linear-gradient(top,#3876c2 0,#385380 100%);background:-ms-linear-gradient(top,#3876c2 0,#385380 100%);background:linear-gradient(to bottom,#3876c2 0,#385380 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#3876c2',endColorstr='#385380',GradientType=0);box-shadow:#111927 0 0 1px 0;margin-top:-7px}input.vis-configuration.vis-config-range:focus{outline:0}input.vis-configuration.vis-config-range:focus::-webkit-slider-runnable-track{background:#9d9d9d;background:-moz-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#9d9d9d),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-o-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:linear-gradient(to bottom,#9d9d9d 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#9d9d9d',endColorstr='#c8c8c8',GradientType=0)}input.vis-configuration.vis-config-range::-moz-range-track{width:300px;height:10px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#dedede',endColorstr='#c8c8c8',GradientType=0);border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-moz-range-thumb{border:0;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:-moz-focusring{outline:1px solid white;outline-offset:-1px}input.vis-configuration.vis-config-range::-ms-track{width:300px;height:5px;background:transparent;border-color:transparent;border-width:6px 0;color:transparent}input.vis-configuration.vis-config-range::-ms-fill-lower{background:#777;border-radius:10px}input.vis-configuration.vis-config-range::-ms-fill-upper{background:#ddd;border-radius:10px}input.vis-configuration.vis-config-range::-ms-thumb{border:0;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:focus::-ms-fill-lower{background:#888}input.vis-configuration.vis-config-range:focus::-ms-fill-upper{background:#ccc}.vis-configuration-popup{position:absolute;background:rgba(57,76,89,0.85);border:2px solid #f2faff;line-height:30px;height:30px;width:150px;text-align:center;color:#fff;font-size:14px;border-radius:4px;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.vis-configuration-popup:after,.vis-configuration-popup:before{left:100%;top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.vis-configuration-popup:after{border-color:rgba(136,183,213,0);border-left-color:rgba(57,76,89,0.85);border-width:8px;margin-top:-8px}.vis-configuration-popup:before{border-color:rgba(194,225,245,0);border-left-color:#f2faff;border-width:12px;margin-top:-12px}div.vis-tooltip{position:absolute;visibility:hidden;padding:5px;white-space:nowrap;font-family:verdana;font-size:14px;color:#000;background-color:#f5f4ed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #808074;box-shadow:3px 3px 10px rgba(0,0,0,0.2);pointer-events:none;z-index:5}div.vis-color-picker{position:absolute;top:0;left:30px;margin-top:-140px;margin-left:30px;width:310px;height:444px;z-index:1;padding:10px;border-radius:15px;background-color:#fff;display:none;box-shadow:rgba(0,0,0,0.5) 0 0 10px 0}div.vis-color-picker div.vis-arrow{position:absolute;top:147px;left:5px}div.vis-color-picker div.vis-arrow::after,div.vis-color-picker div.vis-arrow::before{right:100%;top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}div.vis-color-picker div.vis-arrow:after{border-color:rgba(255,255,255,0);border-right-color:#fff;border-width:30px;margin-top:-30px}div.vis-color-picker div.vis-color{position:absolute;width:289px;height:289px;cursor:pointer}div.vis-color-picker div.vis-brightness{position:absolute;top:313px}div.vis-color-picker div.vis-opacity{position:absolute;top:350px}div.vis-color-picker div.vis-selector{position:absolute;top:137px;left:137px;width:15px;height:15px;border-radius:15px;border:1px solid #fff;background:#4c4c4c;background:-moz-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4c4c4c),color-stop(12%,#595959),color-stop(25%,#666),color-stop(39%,#474747),color-stop(50%,#2c2c2c),color-stop(51%,#000),color-stop(60%,#111),color-stop(76%,#2b2b2b),color-stop(91%,#1c1c1c),color-stop(100%,#131313));background:-webkit-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-o-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-ms-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:linear-gradient(to bottom,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#4c4c4c',endColorstr='#131313',GradientType=0)}div.vis-color-picker div.vis-new-color{position:absolute;width:140px;height:20px;border:1px solid rgba(0,0,0,0.1);border-radius:5px;top:380px;left:159px;text-align:right;padding-right:2px;font-size:10px;color:rgba(0,0,0,0.4);vertical-align:middle;line-height:20px}div.vis-color-picker div.vis-initial-color{position:absolute;width:140px;height:20px;border:1px solid rgba(0,0,0,0.1);border-radius:5px;top:380px;left:10px;text-align:left;padding-left:2px;font-size:10px;color:rgba(0,0,0,0.4);vertical-align:middle;line-height:20px}div.vis-color-picker div.vis-label{position:absolute;width:300px;left:10px}div.vis-color-picker div.vis-label.vis-brightness{top:300px}div.vis-color-picker div.vis-label.vis-opacity{top:338px}div.vis-color-picker div.vis-button{position:absolute;width:68px;height:25px;border-radius:10px;vertical-align:middle;text-align:center;line-height:25px;top:410px;border:2px solid #d9d9d9;background-color:#f7f7f7;cursor:pointer}div.vis-color-picker div.vis-button.vis-cancel{left:5px}div.vis-color-picker div.vis-button.vis-load{left:82px}div.vis-color-picker div.vis-button.vis-apply{left:159px}div.vis-color-picker div.vis-button.vis-save{left:236px}div.vis-color-picker input.vis-range{width:290px;height:20px}div.vis-network div.vis-manipulation{box-sizing:content-box;border-width:0;border-bottom:1px;border-style:solid;border-color:#d6d9d8;background:#fff;background:-moz-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(48%,#fcfcfc),color-stop(50%,#fafafa),color-stop(100%,#fcfcfc));background:-webkit-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-o-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-ms-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:linear-gradient(to bottom,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff',endColorstr='#fcfcfc',GradientType=0);padding-top:4px;position:absolute;left:0;top:0;width:100%;height:28px}div.vis-network div.vis-edit-mode{position:absolute;left:0;top:5px;height:30px}div.vis-network div.vis-close{position:absolute;right:0;top:0;width:30px;height:30px;background-position:20px 3px;background-repeat:no-repeat;background-image:url();cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-close:hover{opacity:.6}div.vis-network div.vis-manipulation div.vis-button,div.vis-network div.vis-edit-mode div.vis-button{float:left;font-family:verdana;font-size:12px;-moz-border-radius:15px;border-radius:15px;display:inline-block;background-position:0 0;background-repeat:no-repeat;height:24px;margin-left:10px;cursor:pointer;padding:0 8px 0 8px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-manipulation div.vis-button:hover{box-shadow:1px 1px 8px rgba(0,0,0,0.20)}div.vis-network div.vis-manipulation div.vis-button:active{box-shadow:1px 1px 8px rgba(0,0,0,0.50)}div.vis-network div.vis-manipulation div.vis-button.vis-back{background-image:url()}div.vis-network div.vis-manipulation div.vis-button.vis-none:hover{box-shadow:1px 1px 8px rgba(0,0,0,0.0);cursor:default}div.vis-network div.vis-manipulation div.vis-button.vis-none:active{box-shadow:1px 1px 8px rgba(0,0,0,0.0)}div.vis-network div.vis-manipulation div.vis-button.vis-none{padding:0}div.vis-network div.vis-manipulation div.notification{margin:2px;font-weight:bold}div.vis-network div.vis-manipulation div.vis-button.vis-add{background-image:url()}div.vis-network div.vis-manipulation div.vis-button.vis-edit,div.vis-network div.vis-edit-mode div.vis-button.vis-edit{background-image:url()}div.vis-network div.vis-edit-mode div.vis-button.vis-edit.vis-edit-mode{background-color:#fcfcfc;border:1px solid #ccc}div.vis-network div.vis-manipulation div.vis-button.vis-connect{background-image:url()}div.vis-network div.vis-manipulation div.vis-button.vis-delete{background-image:url()}div.vis-network div.vis-manipulation div.vis-label,div.vis-network div.vis-edit-mode div.vis-label{margin:0 0 0 23px;line-height:25px}div.vis-network div.vis-manipulation div.vis-separator-line{float:left;display:inline-block;width:1px;height:21px;background-color:#bdbdbd;margin:0 7px 0 15px}div.vis-network div.vis-navigation div.vis-button{width:34px;height:34px;-moz-border-radius:17px;border-radius:17px;position:absolute;display:inline-block;background-position:2px 2px;background-repeat:no-repeat;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-navigation div.vis-button:hover{box-shadow:0 0 3px 3px rgba(56,207,21,0.30)}div.vis-network div.vis-navigation div.vis-button:active{box-shadow:0 0 1px 3px rgba(56,207,21,0.95)}div.vis-network div.vis-navigation div.vis-button.vis-up{background-image:url();bottom:50px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-down{background-image:url();bottom:10px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-left{background-image:url();bottom:10px;left:15px}div.vis-network div.vis-navigation div.vis-button.vis-right{background-image:url();bottom:10px;left:95px}div.vis-network div.vis-navigation div.vis-button.vis-zoomIn{background-image:url();bottom:10px;right:15px}div.vis-network div.vis-navigation div.vis-button.vis-zoomOut{background-image:url();bottom:10px;right:55px}div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends{background-image:url();bottom:50px;right:15px}.vis-current-time{background-color:#ff7f6e;width:2px;z-index:1;pointer-events:none}.vis-rolling-mode-btn{height:40px;width:40px;position:absolute;top:7px;right:20px;border-radius:50%;font-size:28px;cursor:pointer;opacity:.8;color:white;font-weight:bold;text-align:center;background:#3876c2}.vis-rolling-mode-btn:before{content:"\26F6"}.vis-rolling-mode-btn:hover{opacity:1}.vis-custom-time{background-color:#6e94ff;width:2px;cursor:move;z-index:1}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-horizontal{position:absolute;width:100%;height:0;border-bottom:1px solid}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-minor{border-color:#e5e5e5}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-major{border-color:#bfbfbf}.vis-data-axis .vis-y-axis.vis-major{width:100%;position:absolute;color:#4d4d4d;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-major.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-minor{position:absolute;width:100%;color:#bebebe;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-minor.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title{position:absolute;color:#4d4d4d;white-space:nowrap;bottom:20px;text-align:center}.vis-data-axis .vis-y-axis.vis-title.vis-measure{padding:0;margin:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title.vis-left{bottom:0;-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left bottom;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.vis-data-axis .vis-y-axis.vis-title.vis-right{bottom:0;-webkit-transform-origin:right bottom;-moz-transform-origin:right bottom;-ms-transform-origin:right bottom;-o-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.vis-legend{background-color:rgba(247,252,255,0.65);padding:5px;border:1px solid #b3b3b3;box-shadow:2px 2px 10px rgba(154,154,154,0.55)}.vis-legend-text{white-space:nowrap;display:inline-block}.vis-item{position:absolute;color:#1a1a1a;border-color:#97b0f8;border-width:1px;background-color:#d5ddf6;display:inline-block;z-index:1}.vis-item.vis-selected{border-color:#ffc200;background-color:#fff785;z-index:2}.vis-editable.vis-selected{cursor:move}.vis-item.vis-point.vis-selected{background-color:#fff785}.vis-item.vis-box{text-align:center;border-style:solid;border-radius:2px}.vis-item.vis-point{background:0}.vis-item.vis-dot{position:absolute;padding:0;border-width:4px;border-style:solid;border-radius:4px}.vis-item.vis-range{border-style:solid;border-radius:2px;box-sizing:border-box}.vis-item.vis-background{border:0;background-color:rgba(213,221,246,0.4);box-sizing:border-box;padding:0;margin:0}.vis-item .vis-item-overflow{position:relative;width:100%;height:100%;padding:0;margin:0;overflow:hidden}.vis-item-visible-frame{white-space:nowrap}.vis-item.vis-range .vis-item-content{position:relative;display:inline-block}.vis-item.vis-background .vis-item-content{position:absolute;display:inline-block}.vis-item.vis-line{padding:0;position:absolute;width:0;border-left-width:1px;border-left-style:solid}.vis-item .vis-item-content{white-space:nowrap;box-sizing:border-box;padding:5px}.vis-item .vis-onUpdateTime-tooltip{position:absolute;background:#4f81bd;color:white;width:200px;text-align:center;white-space:nowrap;padding:5px;border-radius:1px;transition:.4s;-o-transition:.4s;-moz-transition:.4s;-webkit-transition:.4s}.vis-item .vis-delete,.vis-item .vis-delete-rtl{position:absolute;top:0;width:24px;height:24px;box-sizing:border-box;padding:0 5px;cursor:pointer;-webkit-transition:background .2s linear;-moz-transition:background .2s linear;-ms-transition:background .2s linear;-o-transition:background .2s linear;transition:background .2s linear}.vis-item .vis-delete{right:-24px}.vis-item .vis-delete-rtl{left:-24px}.vis-item .vis-delete:after,.vis-item .vis-delete-rtl:after{content:"\00D7";color:red;font-family:arial,sans-serif;font-size:22px;font-weight:bold;-webkit-transition:color .2s linear;-moz-transition:color .2s linear;-ms-transition:color .2s linear;-o-transition:color .2s linear;transition:color .2s linear}.vis-item .vis-delete:hover,.vis-item .vis-delete-rtl:hover{background:red}.vis-item .vis-delete:hover:after,.vis-item .vis-delete-rtl:hover:after{color:white}.vis-item .vis-drag-center{position:absolute;width:100%;height:100%;top:0;left:0;cursor:move}.vis-item.vis-range .vis-drag-left{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;left:-4px;cursor:w-resize}.vis-item.vis-range .vis-drag-right{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;right:-4px;cursor:e-resize}.vis-range.vis-item.vis-readonly .vis-drag-left,.vis-range.vis-item.vis-readonly .vis-drag-right{cursor:auto}.vis-itemset{position:relative;padding:0;margin:0;box-sizing:border-box}.vis-itemset .vis-background,.vis-itemset .vis-foreground{position:absolute;width:100%;height:100%;overflow:visible}.vis-axis{position:absolute;width:100%;height:0;left:0;z-index:1}.vis-foreground .vis-group{position:relative;box-sizing:border-box;border-bottom:1px solid #bfbfbf}.vis-foreground .vis-group:last-child{border-bottom:0}.vis-nesting-group{cursor:pointer}.vis-nested-group{background:#f5f5f5}.vis-label.vis-nesting-group.expanded:before{content:"\25BC"}.vis-label.vis-nesting-group.collapsed-rtl:before{content:"\25C0"}.vis-label.vis-nesting-group.collapsed:before{content:"\25B6"}.vis-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-labelset{position:relative;overflow:hidden;box-sizing:border-box}.vis-labelset .vis-label{position:relative;left:0;top:0;width:100%;color:#4d4d4d;box-sizing:border-box}.vis-labelset .vis-label{border-bottom:1px solid #bfbfbf}.vis-labelset .vis-label.draggable{cursor:pointer}.vis-labelset .vis-label:last-child{border-bottom:0}.vis-labelset .vis-label .vis-inner{display:inline-block;padding:5px}.vis-labelset .vis-label .vis-inner.vis-hidden{padding:0}.vis-panel{position:absolute;padding:0;margin:0;box-sizing:border-box}.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right,.vis-panel.vis-top,.vis-panel.vis-bottom{border:1px #bfbfbf}.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right{border-top-style:solid;border-bottom-style:solid;overflow:hidden}.vis-left.vis-panel.vis-vertical-scroll,.vis-right.vis-panel.vis-vertical-scroll{height:100%;overflow-x:hidden;overflow-y:scroll}.vis-left.vis-panel.vis-vertical-scroll{direction:rtl}.vis-left.vis-panel.vis-vertical-scroll .vis-content{direction:ltr}.vis-right.vis-panel.vis-vertical-scroll{direction:ltr}.vis-right.vis-panel.vis-vertical-scroll .vis-content{direction:rtl}.vis-panel.vis-center,.vis-panel.vis-top,.vis-panel.vis-bottom{border-left-style:solid;border-right-style:solid}.vis-background{overflow:hidden}.vis-panel>.vis-content{position:relative}.vis-panel .vis-shadow{position:absolute;width:100%;height:1px;box-shadow:0 0 10px rgba(0,0,0,0.8)}.vis-panel .vis-shadow.vis-top{top:-1px;left:0}.vis-panel .vis-shadow.vis-bottom{bottom:-1px;left:0}.vis-graph-group0{fill:#4f81bd;fill-opacity:0;stroke-width:2px;stroke:#4f81bd}.vis-graph-group1{fill:#f79646;fill-opacity:0;stroke-width:2px;stroke:#f79646}.vis-graph-group2{fill:#8c51cf;fill-opacity:0;stroke-width:2px;stroke:#8c51cf}.vis-graph-group3{fill:#75c841;fill-opacity:0;stroke-width:2px;stroke:#75c841}.vis-graph-group4{fill:#ff0100;fill-opacity:0;stroke-width:2px;stroke:#ff0100}.vis-graph-group5{fill:#37d8e6;fill-opacity:0;stroke-width:2px;stroke:#37d8e6}.vis-graph-group6{fill:#042662;fill-opacity:0;stroke-width:2px;stroke:#042662}.vis-graph-group7{fill:#00ff26;fill-opacity:0;stroke-width:2px;stroke:#00ff26}.vis-graph-group8{fill:#f0f;fill-opacity:0;stroke-width:2px;stroke:#f0f}.vis-graph-group9{fill:#8f3938;fill-opacity:0;stroke-width:2px;stroke:#8f3938}.vis-timeline .vis-fill{fill-opacity:.1;stroke:none}.vis-timeline .vis-bar{fill-opacity:.5;stroke-width:1px}.vis-timeline .vis-point{stroke-width:2px;fill-opacity:1.0}.vis-timeline .vis-legend-background{stroke-width:1px;fill-opacity:.9;fill:#fff;stroke:#c2c2c2}.vis-timeline .vis-outline{stroke-width:1px;fill-opacity:1;fill:#fff;stroke:#e5e5e5}.vis-timeline .vis-icon-fill{fill-opacity:.3;stroke:none}.vis-time-axis{position:relative;overflow:hidden}.vis-time-axis.vis-foreground{top:0;left:0;width:100%}.vis-time-axis.vis-background{position:absolute;top:0;left:0;width:100%;height:100%}.vis-time-axis .vis-text{position:absolute;color:#4d4d4d;padding:3px;overflow:hidden;box-sizing:border-box;white-space:nowrap}.vis-time-axis .vis-text.vis-measure{position:absolute;padding-left:0;padding-right:0;margin-left:0;margin-right:0;visibility:hidden}.vis-time-axis .vis-grid.vis-vertical{position:absolute;border-left:1px solid}.vis-time-axis .vis-grid.vis-vertical-rtl{position:absolute;border-right:1px solid}.vis-time-axis .vis-grid.vis-minor{border-color:#e5e5e5}.vis-time-axis .vis-grid.vis-major{border-color:#bfbfbf}.vis-timeline{position:relative;border:1px solid #bfbfbf;overflow:hidden;padding:0;margin:0;box-sizing:border-box}.tc-relink-references {
}.tc-relink-references-table {
	width: 100%;
	border: none;
}.tc-relink-references-table td {
	border-left: none;
}.tc-relink-references-table tr:first-child td {
	border-top: none;
}.tc-relink-references-title {
	text-align: left;
	vertical-align: top;
}.tc-relink-references-occurrence {
	font-style: italic;
	text-align: left;
	font-weight: 200;
	padding-left: 25px;
	vertical-align: top;
}.tc-relink-header-plugin {
	text-align: left;
}.tc-relink-header-plugin button {
	width: 100%
}.tc-relink-column-type {
	width: 8em;
}.tc-relink-column-type select {
	width: 100%;
}.tc-relink-column-delete {
	border-left: none;
	text-align: left;
}.tc-relink-column-delete button {
	padding-left: 1em;
}.tc-relink-impossible a.tc-tiddlylink {
	color: #ff0000;
}
.commander-alert {
  padding: 0.75rem 1.25rem;
  margin-bottom: 1rem;
  border: 1px dotted gray;
  border-radius: 0.25rem;
  color: #0c5460;
  background-color: #d1ecf1;
  border-color: #bee5eb;
	
}/**
.cmd-btn{
 font-size:0.85em;
 font-size:300;
 color: #666666;
 background-color: #d8d8d8;
 padding: 3px 8px 3px 8px;
 border: 1px solid #a1a1a1;
}
**/

.cmd-btn-wd{
	width:20ch;
}/*compInspect table*/
.cmd-ci-table
{border-collapse: collapse;}

.cmd-ci-table .leftcol{
width:20%;
vertical-align: top;
text-align: right;
background-color:#f0f0f0;
}
.cmd-ci-table .rightcol{
width:650px;
}
.kk-commander-log-note{
	font-style:italic; font-size:small;
}
.kk-commander-log-item {
	color:green;
}

/* This is missing and I added it */
.cmd-txt-area{
	min-width:25ch;
}

.cmd-txt-area2{
	min-width:50ch;
}

/* Correct this later*/
.kk-cmd-label{
	display:inline-block;
	width:85px;
}

.kk-cmd-label2{
	display:inline-block;
	width:120px;
}.cmd-sl{
  width:8ch;
}

.cmd-select-wd{
  min-width:25ch;
}
.cmd-snr-row {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  width: 100%;
}
.cmd-snr-column {
  display: flex;
  flex-direction: column;
  flex-basis: 100%;
  flex: 1
}

.cmd-snr-double-column {
  display: flex;
  flex-direction: column;
  flex-basis: 100%;
  flex: 2
}

@media screen and (min-width: 800px) {
  .cmd-snr-column {
    flex: 1
  }

  .cmd-snr-double-column {
    flex: 2
  }
}.cmd-snr-form{
  width:100%;
}

.cmd-snr-textbox {
  width:100%;
  box-sizing: border-box;
  max-width:40ch;
  }

.cmd-snr-form select, .cmd-snr-form input{
  margin: 0.2rem;
}
.cmd-snr-form legend{
  background: #f5f5f5;
  padding: 3px 6px;
}

.cmd-snr-form { padding:20px; }
.cmd-snr-form .item { padding: 2px; margin:2px; }
.cmd-snr-form .item label { display:inline-block; width:100px; margin-left:5px; }
.cmd-snr-form .item input { display:inline-block; }
.cmd-snr-form .item select { display:inline-block; }

/* only for relink checkbox on renaming tiddler */
.cmd-snr-form .item-relink { padding: 2px; margin:2px; }

     .kk-commander-tiddler-list {
  font-size:small; 
	border-left:0.5px 
	dotted grey;
	padding-left:10px;
	overflow-y:auto;
	max-width:100%;
	max-height:$(height)$;
}

.kk-commander-columns1   { display:block; column-count:1; column-gap:1em; }
.kk-commander-columns2   { display:block; column-count:2; column-gap:1em; }
.kk-commander-columns3   { display:block; column-count:3; column-gap:1em; }
.kk-commander-columns4   { display:block; column-count:4; column-gap:1em; }
.kk-commander-columns5   { display:block; column-count:5; column-gap:1em; }/* skin */
.kk-fav-row:hover {
	background-color: #f0f0f0;
}
.kk-fav-row .tc-btn-invisible svg
{
	font-size: 0.9em;
	fill: #bbb;
	vertical-align: middle;
	margin-right:0.5em;
}
.kk-fav-folder-content .tc-btn-invisible.tc-btn-mini svg {
	font-size: 0.7em;
	fill: #bbb;
	vertical-align: middle;}/* for manager btn */
.tc-btn-invisible.kk-fav-btn{
	color: #bbb;
}
.tc-btn-invisible.kk-fav-btn svg{
	fill:  #bbb;
}/* very important: style the favorite icon on tiddler view toolbar */
.tc-tiddler-controls .notselected .tc-image-favorites-button {
	stroke:#000;
}.tc-tiddler-controls .selected .tc-image-favorites-button {
	stroke: #ff0000;
	fill:   #ff0000;
}.tc-tiddler-controls:hover .selected .tc-image-favorites-button {
	stroke: #ff0000;
	fill:   #ff0000;
}.kk-fav-row{
	display: flex;	
	width: 100%;
	flex-wrap: nowrap;
}

.kk-fav-row div.kk-fav-input-textbox{
	flex-grow:1;
	margin-right:8px;
	width:100%;
}

.kk-fav-row .kk-fav-input-textbox .kk-fav-input{
	width:100%;
	outline: none;
	border: none;
	border-bottom: 1px dotted grey;
	background: transparent;
}

.kk-fav-row .kk-fav-input-textbox .kk-fav-inpu:focus{
	outline: none;
	border-bottom: 1px solid #5778d8;
	background: transparent;
}

.kk-fav-row button.tc-btn-invisible{
	outline: none;
}

/* for title everywhere */
.kk-fav-title{
	font-weight: 600;
}
.kk-fav-title svg{
	height:1em;
	width:1em;
	vertical-align:middle;
}
/* folder title row */
.kk-fav-row .kk-fav-title{
	width:100%;
}

.kk-fav-row input[type="radio"] {
	width:  0.7em;
	height: 0.7em; 
	vertical-align: middle;
}

/* other items */
label.kk-fav-label{
	flex-shrink:0;
	width:120px;

}

/* in slider */
.kk-fav-folder-content {
	padding-left:20px;
}

/* only if caption has svg segment.
see $:/plugins/kookma/favorites/templates/item-link */
.kk-fav-item svg{
	height:1em;
	width:1em;
	vertical-align:middle;
}

/* clear buttons on inputbox for create folder, rename folder*/
.tc-btn-invisible.kk-fav-btn-mini svg{
	width:0.8em;
	height:0.8em;
	vertical-align:middle;
}
.tc-btn-invisible.kk-fav-btn-mini{
	margin-right:0.5em;
}

/* folder reorder and rearrange */
.kk-fav-folder-reorder{
	margin-top:15px;
	margin-bottom:15px;
}

.kk-fav-folder-reorder button{
	align-self: flex-start;
	flex-shrink:0;
	margin-left:4px;
}

.kk-fav-folder-reorder button svg.tc-image-button{
	width:  0.7em;
	height: 0.7em;
}

/* hide item-delete for frozen-tab ----- this is important and control visibilty of close button*/
.kk-fav-frozen-tab .kk-fav-close-btn{
	display:none;
}
/* select widget in export */
.kk-fav-select{
	display:inline-block;
	width:320px;
}

/* buttons on sidebar: manager, collapse all */
.tc-btn-invisible.kk-fav-btn{
	opacity:0.5;
}
.tc-btn-invisible.kk-fav-btn:hover{
	opacity:1.0;
}
.tc-btn-invisible.kk-fav-btn .tc-image-fold{
	height:0.9em;
	vertical-align:bottom;
}


.kk-fav-btn .tc-image-refresh-button{
	vertical-align: middle;
	width:  1.1em;
	height: 1.1em;
}

input.kk-fv-color-input[type="color"] {
	-webkit-appearance: none;
	border: none;
	width: 40px;
	height: 20px;
}

/* Utility classes */

.kk-fav-left-gap{
	margin-left:8px;
}

/* Settings tab */
label.kk-fav-label {
 display:inline-block;
 width: 210px;
 margin-bottom:0.4em;
}
.kk-fav-input {
  width:120px;
}

/* folder-tiddler-ui*/

details.kk-fav-details>summary{
padding-left:0;
}.leftbar{
  border-width:0px !important;
  border-radius:0px !important;
  border-left-width: 5px !important;
}/* Colors taked from [1] https://www.bg-w3schools.bg-com/colors/colors_names.bg-asp 
[2] http://www.bg-workwithcolor.bg-com/color-chart-full-01.bg-htm*/
/*Low tone background colors*/
.bg-mistyrose{background-color:#ffe4e1;}
.bg-lemonchiffon{background-color:#fffacd;}
.bg-lavenderblush{background-color:#fff0f5;}
.bg-lavender{background-color:#e6e6fa;}
.bg-honeydew{background-color:#f0fff0;}
.bg-lightcyan{background-color:#e0ffff;}
.bg-aliceblue{background-color:#f0f8ff;}
.bg-cornsilk{background-color:#fff8dc;}
.bg-gainsboro{background-color:#dcdcdc;}
.bg-bisque{background-color:#ffe4c4;}
.bg-snow{background-color:#fffafa;}/*Was taken from bootstrap 4.1.3*/
.alert {
  position: relative;
  padding: 0.75rem 1.25rem;
  margin-bottom: 1rem;
  border: 1px solid transparent;
  border-radius: 0.25rem;
}
.alert-primary {
  color: #004085;
  background-color: #cce5ff;
  border-color: #b8daff;
}

.alert-primary hr {
  border-top-color: #9fcdff;
}
.alert-secondary {
  color: #383d41;
  background-color: #e2e3e5;
  border-color: #d6d8db;
}

.alert-secondary hr {
  border-top-color: #c8cbcf;
}

.alert-success {
  color: #155724;
  background-color: #d4edda;
  border-color: #c3e6cb;
}

.alert-success hr {
  border-top-color: #b1dfbb;
}
.alert-info {
  color: #0c5460;
  background-color: #d1ecf1;
  border-color: #bee5eb;
}

.alert-info hr {
  border-top-color: #abdde5;
}
.alert-warning {
  color: #856404;
  background-color: #fff3cd;
  border-color: #ffeeba;
}

.alert-warning hr {
  border-top-color: #ffe8a1;
}

.alert-danger {
  color: #721c24;
  background-color: #f8d7da;
  border-color: #f5c6cb;
}

.alert-danger hr {
  border-top-color: #f1b0b7;
}
.alert-light {
  color: #818182;
  background-color: #fefefe;
  border-color: #fdfdfe;
}

.alert-light hr {
  border-top-color: #ececf6;
}
.alert-dark {
  color: #1b1e21;
  background-color: #d6d8d9;
  border-color: #c6c8ca;
}

.alert-dark hr {
  border-top-color: #b9bbbe;
}
.bg-primary {
  background-color: #007bff !important;
}

a.bg-primary:hover, a.bg-primary:focus,
button.bg-primary:hover,
button.bg-primary:focus {
  background-color: #0062cc !important;
}

.bg-secondary {
  background-color: #6c757d !important;
}

a.bg-secondary:hover, a.bg-secondary:focus,
button.bg-secondary:hover,
button.bg-secondary:focus {
  background-color: #545b62 !important;
}

.bg-success {
  background-color: #28a745 !important;
}

a.bg-success:hover, a.bg-success:focus,
button.bg-success:hover,
button.bg-success:focus {
  background-color: #1e7e34 !important;
}

.bg-info {
  background-color: #17a2b8 !important;
}

a.bg-info:hover, a.bg-info:focus,
button.bg-info:hover,
button.bg-info:focus {
  background-color: #117a8b !important;
}

.bg-warning {
  background-color: #ffc107 !important;
}

a.bg-warning:hover, a.bg-warning:focus,
button.bg-warning:hover,
button.bg-warning:focus {
  background-color: #d39e00 !important;
}

.bg-danger {
  background-color: #dc3545 !important;
}

a.bg-danger:hover, a.bg-danger:focus,
button.bg-danger:hover,
button.bg-danger:focus {
  background-color: #bd2130 !important;
}

.bg-light {
  background-color: #f8f9fa !important;
}

a.bg-light:hover, a.bg-light:focus,
button.bg-light:hover,
button.bg-light:focus {
  background-color: #dae0e5 !important;
}

.bg-dark {
  background-color: #343a40 !important;
}

a.bg-dark:hover, a.bg-dark:focus,
button.bg-dark:hover,
button.bg-dark:focus {
  background-color: #1d2124 !important;
}

.bg-white {
  background-color: #fff !important;
}

.bg-transparent {
  background-color: transparent !important;
}/* Extracted from bootstrap 4.1.3 */
.badge {
  display: inline-block;
  padding: 0.25em 0.4em;
  font-size: 75%;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: 0.25rem;
}

.badge:empty {
  display: none;
}

.btn .badge {
  position: relative;
  top: -1px;
}

.badge-pill {
  padding-right: 0.6em;
  padding-left: 0.6em;
  border-radius: 10rem;
}

.badge-primary {
  color: #fff;
  background-color: #007bff;
}

.badge-primary[href]:hover, .badge-primary[href]:focus {
  color: #fff;
  text-decoration: none;
  background-color: #0062cc;
}

.badge-secondary {
  color: #fff;
  background-color: #6c757d;
}

.badge-secondary[href]:hover, .badge-secondary[href]:focus {
  color: #fff;
  text-decoration: none;
  background-color: #545b62;
}

.badge-success {
  color: #fff;
  background-color: #28a745;
}

.badge-success[href]:hover, .badge-success[href]:focus {
  color: #fff;
  text-decoration: none;
  background-color: #1e7e34;
}

.badge-info {
  color: #fff;
  background-color: #17a2b8;
}

.badge-info[href]:hover, .badge-info[href]:focus {
  color: #fff;
  text-decoration: none;
  background-color: #117a8b;
}

.badge-warning {
  color: #212529;
  background-color: #ffc107;
}

.badge-warning[href]:hover, .badge-warning[href]:focus {
  color: #212529;
  text-decoration: none;
  background-color: #d39e00;
}

.badge-danger {
  color: #fff;
  background-color: #dc3545;
}

.badge-danger[href]:hover, .badge-danger[href]:focus {
  color: #fff;
  text-decoration: none;
  background-color: #bd2130;
}

.badge-light {
  color: #212529;
  background-color: #f8f9fa;
}

.badge-light[href]:hover, .badge-light[href]:focus {
  color: #212529;
  text-decoration: none;
  background-color: #dae0e5;
}

.badge-dark {
  color: #fff;
  background-color: #343a40;
}

.badge-dark[href]:hover, .badge-dark[href]:focus {
  color: #fff;
  text-decoration: none;
  background-color: #1d2124;
}

.border {
  border: 1px solid #dee2e6 !important;
}

.border-top {
  border-top: 1px solid #dee2e6 !important;
}

.border-right {
  border-right: 1px solid #dee2e6 !important;
}

.border-bottom {
  border-bottom: 1px solid #dee2e6 !important;
}

.border-left {
  border-left: 1px solid #dee2e6 !important;
}

.border-0 {
  border: 0 !important;
}

.border-top-0 {
  border-top: 0 !important;
}

.border-right-0 {
  border-right: 0 !important;
}

.border-bottom-0 {
  border-bottom: 0 !important;
}

.border-left-0 {
  border-left: 0 !important;
}

.border-primary {
  border-color: #007bff !important;
}

.border-secondary {
  border-color: #6c757d !important;
}

.border-success {
  border-color: #28a745 !important;
}

.border-info {
  border-color: #17a2b8 !important;
}

.border-warning {
  border-color: #ffc107 !important;
}

.border-danger {
  border-color: #dc3545 !important;
}

.border-light {
  border-color: #f8f9fa !important;
}

.border-dark {
  border-color: #343a40 !important;
}

.border-white {
  border-color: #fff !important;
}

.rounded {
  border-radius: 0.25rem !important;
}

.rounded-top {
  border-top-left-radius: 0.25rem !important;
  border-top-right-radius: 0.25rem !important;
}

.rounded-right {
  border-top-right-radius: 0.25rem !important;
  border-bottom-right-radius: 0.25rem !important;
}

.rounded-bottom {
  border-bottom-right-radius: 0.25rem !important;
  border-bottom-left-radius: 0.25rem !important;
}

.rounded-left {
  border-top-left-radius: 0.25rem !important;
  border-bottom-left-radius: 0.25rem !important;
}

.rounded-circle {
  border-radius: 50% !important;
}

.rounded-0 {
  border-radius: 0 !important;
}
/* Button and btn classes Mohammad*/
.btn {
  display: inline-block;
  font-weight: 400;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  border: 1px solid transparent;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  line-height: 1.5;
  border-radius: 0.25rem;
  transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}


.btn:hover, .btn:focus {
  text-decoration: none;
}

.btn:focus, .btn.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);
}

.btn.disabled, .btn:disabled {
  opacity: 0.65;
}

.btn:not(:disabled):not(.disabled) {
  cursor: pointer;
}

a.btn.disabled,
fieldset:disabled a.btn {
  pointer-events: none;
}

.btn-primary {
  color: #fff;
  background-color: #007bff;
  border-color: #007bff;
}

.btn-primary:hover {
  color: #fff;
  background-color: #0069d9;
  border-color: #0062cc;
}

.btn-primary:focus, .btn-primary.focus {
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);
}

.btn-primary.disabled, .btn-primary:disabled {
  color: #fff;
  background-color: #007bff;
  border-color: #007bff;
}

.btn-secondary {
  color: #fff;
  background-color: #6c757d;
  border-color: #6c757d;
}

.btn-secondary:hover {
  color: #fff;
  background-color: #5a6268;
  border-color: #545b62;
}

.btn-secondary:focus, .btn-secondary.focus {
  box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);
}

.btn-secondary.disabled, .btn-secondary:disabled {
  color: #fff;
  background-color: #6c757d;
  border-color: #6c757d;
}

.btn-success {
  color: #fff;
  background-color: #28a745;
  border-color: #28a745;
}

.btn-success:hover {
  color: #fff;
  background-color: #218838;
  border-color: #1e7e34;
}

.btn-success:focus, .btn-success.focus {
  box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);
}

.btn-success.disabled, .btn-success:disabled {
  color: #fff;
  background-color: #28a745;
  border-color: #28a745;
}

.btn-info {
  color: #fff;
  background-color: #17a2b8;
  border-color: #17a2b8;
}

.btn-info:hover {
  color: #fff;
  background-color: #138496;
  border-color: #117a8b;
}

.btn-info:focus, .btn-info.focus {
  box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);
}

.btn-info.disabled, .btn-info:disabled {
  color: #fff;
  background-color: #17a2b8;
  border-color: #17a2b8;
}

.btn-warning {
  color: #212529;
  background-color: #ffc107;
  border-color: #ffc107;
}

.btn-warning:hover {
  color: #212529;
  background-color: #e0a800;
  border-color: #d39e00;
}

.btn-warning:focus, .btn-warning.focus {
  box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);
}

.btn-warning.disabled, .btn-warning:disabled {
  color: #212529;
  background-color: #ffc107;
  border-color: #ffc107;
}

.btn-danger {
  color: #fff;
  background-color: #dc3545;
  border-color: #dc3545;
}

.btn-danger:hover {
  color: #fff;
  background-color: #c82333;
  border-color: #bd2130;
}

.btn-danger:focus, .btn-danger.focus {
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);
}

.btn-danger.disabled, .btn-danger:disabled {
  color: #fff;
  background-color: #dc3545;
  border-color: #dc3545;
}

.btn-light {
  color: #212529;
  background-color: #f8f9fa;
  border-color: #f8f9fa;
}

.btn-light:hover {
  color: #212529;
  background-color: #e2e6ea;
  border-color: #dae0e5;
}

.btn-light:focus, .btn-light.focus {
  box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);
}

.btn-light.disabled, .btn-light:disabled {
  color: #212529;
  background-color: #f8f9fa;
  border-color: #f8f9fa;
}

.btn-dark {
  color: #fff;
  background-color: #343a40;
  border-color: #343a40;
}

.btn-dark:hover {
  color: #fff;
  background-color: #23272b;
  border-color: #1d2124;
}

.btn-dark:focus, .btn-dark.focus {
  box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);
}

.btn-dark.disabled, .btn-dark:disabled {
  color: #fff;
  background-color: #343a40;
  border-color: #343a40;
}

.btn-link {
  font-weight: 400;
  color: #007bff;
  background-color: transparent;
}

.btn-link:hover {
  color: #0056b3;
  text-decoration: underline;
  background-color: transparent;
  border-color: transparent;
}

.btn-link:focus, .btn-link.focus {
  text-decoration: underline;
  border-color: transparent;
  box-shadow: none;
}

.btn-link:disabled, .btn-link.disabled {
  color: #6c757d;
  pointer-events: none;
}

/* button size */

.btn-lg{
  padding: 0.5rem 1rem;
  font-size: 1.25rem;
  line-height: 1.5;
  border-radius: 0.3rem;
}

.btn-sm{
  padding: 0.25rem 0.5rem;
  font-size: 0.875rem;
  line-height: 1.5;
  border-radius: 0.2rem;
}/* Extracted from bootstrap 4.3.1 */
.card-columns .card {
  margin-bottom: 0.75rem;
}

@media (min-width: 576px) {
  .card-columns {
    -webkit-column-count: 3;
    -moz-column-count: 3;
    column-count: 3;
    -webkit-column-gap: 1.25rem;
    -moz-column-gap: 1.25rem;
    column-gap: 1.25rem;
    orphans: 1;
    widows: 1;
  }
  .card-columns .card {
    display: inline-block;
    width: 100%;
  }
}/* Extracted from bootstrap 4.1.3 */

.card-deck {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
  flex-direction: column;
}

.card-deck .card {
  margin-bottom: 15px;
}

@media (min-width: 576px) {
  .card-deck {
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    margin-right: -15px;
    margin-left: -15px;
  }
  .card-deck .card {
    display: -ms-flexbox;
    display: flex;
    -ms-flex: 1 0 0%;
    flex: 1 0 0%;
    -ms-flex-direction: column;
    flex-direction: column;
    margin-right: 15px;
    margin-bottom: 0;
    margin-left: 15px;
  }
}/* Extracted from bootstrap 4.1.3 */
.card-group {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
  flex-direction: column;
}

.card-group > .card {
  margin-bottom: 15px;
}

@media (min-width: 576px) {
  .card-group {
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
  }
  .card-group > .card {
    -ms-flex: 1 0 0%;
    flex: 1 0 0%;
    margin-bottom: 0;
  }
  .card-group > .card + .card {
    margin-left: 0;
    border-left: 0;
  }
  .card-group > .card:first-child {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
  }
  .card-group > .card:first-child .card-img-top,
  .card-group > .card:first-child .card-header {
    border-top-right-radius: 0;
  }
  .card-group > .card:first-child .card-img-bottom,
  .card-group > .card:first-child .card-footer {
    border-bottom-right-radius: 0;
  }
  .card-group > .card:last-child {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
  }
  .card-group > .card:last-child .card-img-top,
  .card-group > .card:last-child .card-header {
    border-top-left-radius: 0;
  }
  .card-group > .card:last-child .card-img-bottom,
  .card-group > .card:last-child .card-footer {
    border-bottom-left-radius: 0;
  }
  .card-group > .card:only-child {
    border-radius: 0.25rem;
  }
  .card-group > .card:only-child .card-img-top,
  .card-group > .card:only-child .card-header {
    border-top-left-radius: 0.25rem;
    border-top-right-radius: 0.25rem;
  }
  .card-group > .card:only-child .card-img-bottom,
  .card-group > .card:only-child .card-footer {
    border-bottom-right-radius: 0.25rem;
    border-bottom-left-radius: 0.25rem;
  }
  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) {
    border-radius: 0;
  }
  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-top,
  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,
  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-header,
  .card-group > .card:not(:first-child):not(:last-child):not(:only-child) .card-footer {
    border-radius: 0;
  }
}
/* Extracted from bootstrap 4.1.3 */
.card {
  position: relative;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
  flex-direction: column;
  min-width: 0;
  word-wrap: break-word;
  background-color: #fff;
  background-clip: border-box;
  border: 1px solid rgba(0, 0, 0, 0.125);
  border-radius: 0.25rem;
}

.card > hr {
  margin-right: 0;
  margin-left: 0;
}

.card > .list-group:first-child .list-group-item:first-child {
  border-top-left-radius: 0.25rem;
  border-top-right-radius: 0.25rem;
}

.card > .list-group:last-child .list-group-item:last-child {
  border-bottom-right-radius: 0.25rem;
  border-bottom-left-radius: 0.25rem;
}

.card-body {
  -ms-flex: 1 1 auto;
  flex: 1 1 auto;
  padding: 1.25rem;
}

.card-title {
  margin-bottom: 0.75rem;
}

.card-subtitle {
  margin-top: -0.375rem;
  margin-bottom: 0;
}

.card-text:last-child {
  margin-bottom: 0;
}

.card-link:hover {
  text-decoration: none;
}

.card-link + .card-link {
  margin-left: 1.25rem;
}

.card-header {
  padding: 0.75rem 1.25rem;
  margin-bottom: 0;
  background-color: rgba(0, 0, 0, 0.03);
  border-bottom: 1px solid rgba(0, 0, 0, 0.125);
}

.card-header:first-child {
  border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;
}

.card-header + .list-group .list-group-item:first-child {
  border-top: 0;
}

.card-footer {
  padding: 0.75rem 1.25rem;
  background-color: rgba(0, 0, 0, 0.03);
  border-top: 1px solid rgba(0, 0, 0, 0.125);
}

.card-footer:last-child {
  border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);
}

.card-header-tabs {
  margin-right: -0.625rem;
  margin-bottom: -0.75rem;
  margin-left: -0.625rem;
  border-bottom: 0;
}

.card-header-pills {
  margin-right: -0.625rem;
  margin-left: -0.625rem;
}

.card-img-overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 1.25rem;
}

.card-img {
  width: 100%;
  border-radius: calc(0.25rem - 1px);
}

.card-img-top {
  width: 100%;
  border-top-left-radius: calc(0.25rem - 1px);
  border-top-right-radius: calc(0.25rem - 1px);
}

.card-img-bottom {
  width: 100%;
  border-bottom-right-radius: calc(0.25rem - 1px);
  border-bottom-left-radius: calc(0.25rem - 1px);
}
.clearfix::after {
  display: block;
  clear: both;
  content: "";
}.float-left {
  float: left;
}

.float-right {
  float: right;
}

.float-none {
  float: none;
}
/* My adjustments to bootstrap 4.1.3 css classes */
a {
  color: #007bff;
  text-decoration: none;
  background-color: transparent;
  -webkit-text-decoration-skip: objects;
}
/* Link is hacked to be compatible with bootstrap 
classes remove it if the TW core objects break
*/

.shadow-sm {
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
}

.shadow {
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;
}

.shadow-lg {
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;
}

.shadow-none {
  box-shadow: none !important;
}/* Extracted from bootstrap 4.3.1 */
/*Defines margins, paddings, width and height*/
.w-25 {
  width: 25% !important;
}
.w-50 {
  width: 50% !important;
}
.w-75 {
  width: 75% !important;
}
.w-100 {
  width: 100% !important;
}
.w-auto {
  width: auto !important;
}
.h-25 {
  height: 25% !important;
}
.h-50 {
  height: 50% !important;
}
.h-75 {
  height: 75% !important;
}
.h-100 {
  height: 100% !important;
}
.h-auto {
  height: auto !important;
}
.mw-100 {
  max-width: 100% !important;
}
.mh-100 {
  max-height: 100% !important;
}
.m-0 {
  margin: 0 !important;
}
.mt-0,
.my-0 {
  margin-top: 0 !important;
}
.mr-0,
.mx-0 {
  margin-right: 0 !important;
}
.mb-0,
.my-0 {
  margin-bottom: 0 !important;
}
.ml-0,
.mx-0 {
  margin-left: 0 !important;
}
.m-1 {
  margin: 0.25rem !important;
}
.mt-1,
.my-1 {
  margin-top: 0.25rem !important;
}
.mr-1,
.mx-1 {
  margin-right: 0.25rem !important;
}
.mb-1,
.my-1 {
  margin-bottom: 0.25rem !important;
}
.ml-1,
.mx-1 {
  margin-left: 0.25rem !important;
}
.m-2 {
  margin: 0.5rem !important;
}
.mt-2,
.my-2 {
  margin-top: 0.5rem !important;
}
.mr-2,
.mx-2 {
  margin-right: 0.5rem !important;
}
.mb-2,
.my-2 {
  margin-bottom: 0.5rem !important;
}
.ml-2,
.mx-2 {
  margin-left: 0.5rem !important;
}

.m-3 {
  margin: 1rem !important;
}

.mt-3,
.my-3 {
  margin-top: 1rem !important;
}

.mr-3,
.mx-3 {
  margin-right: 1rem !important;
}

.mb-3,
.my-3 {
  margin-bottom: 1rem !important;
}

.ml-3,
.mx-3 {
  margin-left: 1rem !important;
}

.m-4 {
  margin: 1.5rem !important;
}

.mt-4,
.my-4 {
  margin-top: 1.5rem !important;
}

.mr-4,
.mx-4 {
  margin-right: 1.5rem !important;
}

.mb-4,
.my-4 {
  margin-bottom: 1.5rem !important;
}

.ml-4,
.mx-4 {
  margin-left: 1.5rem !important;
}

.m-5 {
  margin: 3rem !important;
}

.mt-5,
.my-5 {
  margin-top: 3rem !important;
}

.mr-5,
.mx-5 {
  margin-right: 3rem !important;
}

.mb-5,
.my-5 {
  margin-bottom: 3rem !important;
}

.ml-5,
.mx-5 {
  margin-left: 3rem !important;
}

.p-0 {
  padding: 0 !important;
}

.pt-0,
.py-0 {
  padding-top: 0 !important;
}

.pr-0,
.px-0 {
  padding-right: 0 !important;
}

.pb-0,
.py-0 {
  padding-bottom: 0 !important;
}

.pl-0,
.px-0 {
  padding-left: 0 !important;
}

.p-1 {
  padding: 0.25rem !important;
}

.pt-1,
.py-1 {
  padding-top: 0.25rem !important;
}

.pr-1,
.px-1 {
  padding-right: 0.25rem !important;
}

.pb-1,
.py-1 {
  padding-bottom: 0.25rem !important;
}

.pl-1,
.px-1 {
  padding-left: 0.25rem !important;
}

.p-2 {
  padding: 0.5rem !important;
}

.pt-2,
.py-2 {
  padding-top: 0.5rem !important;
}

.pr-2,
.px-2 {
  padding-right: 0.5rem !important;
}

.pb-2,
.py-2 {
  padding-bottom: 0.5rem !important;
}

.pl-2,
.px-2 {
  padding-left: 0.5rem !important;
}

.p-3 {
  padding: 1rem !important;
}

.pt-3,
.py-3 {
  padding-top: 1rem !important;
}

.pr-3,
.px-3 {
  padding-right: 1rem !important;
}

.pb-3,
.py-3 {
  padding-bottom: 1rem !important;
}

.pl-3,
.px-3 {
  padding-left: 1rem !important;
}

.p-4 {
  padding: 1.5rem !important;
}

.pt-4,
.py-4 {
  padding-top: 1.5rem !important;
}

.pr-4,
.px-4 {
  padding-right: 1.5rem !important;
}

.pb-4,
.py-4 {
  padding-bottom: 1.5rem !important;
}

.pl-4,
.px-4 {
  padding-left: 1.5rem !important;
}

.p-5 {
  padding: 3rem !important;
}

.pt-5,
.py-5 {
  padding-top: 3rem !important;
}

.pr-5,
.px-5 {
  padding-right: 3rem !important;
}

.pb-5,
.py-5 {
  padding-bottom: 3rem !important;
}

.pl-5,
.px-5 {
  padding-left: 3rem !important;
}

.m-auto {
  margin: auto !important;
}

.mt-auto,
.my-auto {
  margin-top: auto !important;
}

.mr-auto,
.mx-auto {
  margin-right: auto !important;
}

.mb-auto,
.my-auto {
  margin-bottom: auto !important;
}

.ml-auto,
.mx-auto {
  margin-left: auto !important;
}
.text-justify {
  text-align: justify !important;
}

.text-nowrap {
  white-space: nowrap !important;
}

.text-truncate {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.text-left {
  text-align: left !important;
}

.text-right {
  text-align: right !important;
}

.text-center {
  text-align: center !important;
}/* from bootstrap 4.1.3 */

.text-white {
  color: #fff !important;
}

.text-primary {
  color: #007bff !important;
}

a.text-primary:hover, a.text-primary:focus {
  color: #0062cc !important;
}

.text-secondary {
  color: #6c757d !important;
}

a.text-secondary:hover, a.text-secondary:focus {
  color: #545b62 !important;
}

.text-success {
  color: #28a745 !important;
}

a.text-success:hover, a.text-success:focus {
  color: #1e7e34 !important;
}

.text-info {
  color: #17a2b8 !important;
}

a.text-info:hover, a.text-info:focus {
  color: #117a8b !important;
}

.text-warning {
  color: #ffc107 !important;
}

a.text-warning:hover, a.text-warning:focus {
  color: #d39e00 !important;
}

.text-danger {
  color: #dc3545 !important;
}

a.text-danger:hover, a.text-danger:focus {
  color: #bd2130 !important;
}

.text-light {
  color: #f8f9fa !important;
}

a.text-light:hover, a.text-light:focus {
  color: #dae0e5 !important;
}

.text-dark {
  color: #343a40 !important;
}

a.text-dark:hover, a.text-dark:focus {
  color: #1d2124 !important;
}

.text-body {
  color: #212529 !important;
}

.text-muted {
  color: #6c757d !important;
}

.text-black-50 {
  color: rgba(0, 0, 0, 0.5) !important;
}

.text-white-50 {
  color: rgba(255, 255, 255, 0.5) !important;
}

.text-hide {
  font: 0/0 a;
  color: transparent;
  text-shadow: none;
  background-color: transparent;
  border: 0;
}
/* Can be removed latter. This is used for illustration of bootstrap cards */

.text-lowercase {
  text-transform: lowercase !important;
}

.text-uppercase {
  text-transform: uppercase !important;
}

.text-capitalize {
  text-transform: capitalize !important;
}

.font-weight-light {
  font-weight: 300 !important;
}

.font-weight-normal {
  font-weight: 400 !important;
}

.font-weight-bold {
  font-weight: 700 !important;
}

.font-italic {
  font-style: italic !important;
}


.h1, .h2, .h3, .h4, .h5, .h6 {
  margin-bottom: 0.5rem;
  font-family: inherit;
  font-weight: 500;
  line-height: 1.2;
  color: inherit;
}

.h1 {
  font-size: 2.5rem;
}

.h2 {
  font-size: 2rem;
}

.h3 {
  font-size: 1.75rem;
}

.h4 {
  font-size: 1.5rem;
}

.h5 {
  font-size: 1.25rem;
}

.h6 {
  font-size: 1rem;
}

.lead {
  font-size: 1.25rem;
  font-weight: 300;
}

.display-1 {
  font-size: 6rem;
  font-weight: 300;
  line-height: 1.2;
}

.display-2 {
  font-size: 5.5rem;
  font-weight: 300;
  line-height: 1.2;
}

.display-3 {
  font-size: 4.5rem;
  font-weight: 300;
  line-height: 1.2;
}

.display-4 {
  font-size: 3.5rem;
  font-weight: 300;
  line-height: 1.2;
}

.hr {
  margin-top: 1rem;
  margin-bottom: 1rem;
  border: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.1);
}

.small {
  font-size: 80%;
  font-weight: 400;
}

.mark {
  padding: 0.2em;
  background-color: #fcf8e3;
}
/* Resolve issue for floating objects which cross the tiddler frame!
The below code should force the tiddler to always wrap around floating elements, so that they are always inside
Ref: https://groups.google.com/d/msg/tiddlywiki/5bZwwj6cyac/2LzFeA7AAwAJ
*/

.tc-tiddler-body:before, .tc-tiddler-body:after {
    content: "";
    display: table;
}
.tc-tiddler-body:after {
    clear: both;
}
.tc-tiddler-body {
    zoom: 1;
}.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {
    background: none;
    border: none;
    border-bottom: solid 1px #737373;
    font-weight: bold;
    color: #DB4C3F;
}.falign .katex-display > .katex {text-align:left;}
.ralign .katex-display > .katex {text-align:right;}
.table-mathbox  tr td{vertical-align: baseline;} /* baseline aligned text and fomula in table cell*/

/*
Only used with csv table + katex
See $:/plugins/kookma/shiraz/macros/csvtables/formats-math
*//* Styles for star rating used with table-csv macro */
.shiraz-star svg{
width: 1.2em;
height: 1.2em;
vertical-align: middle;
fill:#FF9529; /*Deep Saffron*/
}/* todo section ------------*/
.tc-tiddler-body p.dblock {
	display:none;
}

/*
Only used with csv table
See $:/plugins/kookma/shiraz/macros/csvtables/table-csv
The @@ produces a p tag.
*//*Credits: 
Nishant Srivastava https://codepen.io/nisrulz/pen/bpQWLW
Mohammad Rahmani: https://github.com/kookma
*/
.dbadge {
 display: inline-block;
 margin: 0.0em;
}
.dbadge > span {
  color: #ffffff;
  font-size: 0.8em;
  font-weight: 400;
  line-height: 1;
  padding: .2em .6em;
  text-align: center;
  vertical-align: baseline;
  white-space: nowrap;}

.dbadge-subject{
  background-color: #656565;
  border-bottom-left-radius: 0.25em;
  border-top-left-radius: 0.25em;}
.dbadge-status {
  border-bottom-right-radius: 0.25em;
  border-top-right-radius: 0.25em;}

.dbadge-primary {
    background-color: #337ab7;}
.dbadge-success {
    background-color: #5cb85c;}
.dbadge-info {
    background-color: #5bc0de;}
.dbadge-warning {
    background-color: #f0ad4e;}
.dbadge-danger {
    background-color: #d9534f;}/*details html5 macro*/
details > summary {
  padding: 2px 6px;
  font-weight:500;
  outline:none;
}
details > div {
  padding: 2px 6px;
  margin: 0;
}


/* Styles for summary cursor
url: https://css-tricks.com/two-issues-styling-the-details-element-and-how-to-solve-them/
*/

summary {
  cursor: pointer;
}

summary > * {
  display: inline;
}


button .kk-sh-slider svg{
width: 0.8em;
height: 0.8em;
vertical-align: middle;
}

/* these are dynamic or variable properties based on the tiddlywiki palette */.shiraz-dtable-page-footer select{
	background-color: #f0f0f0;
	color:#333333;
}.shiraz-dtable-page-footer > td{
	background-color: #f0f0f0;
}/* customize the table footer used for numerical summary*/
.shiraz-dtable-footer tr td{
	background-color: #a8a8a8;
	border:none;
}/* correct button color to support dark theme */
.tbl-container table thead th button{
	color:
}
.tbl-container table thead th button svg {
	fill:;
}/* edit-text box for dynamic table */
.shiraz-dtable-textbox {
	width:100%;
	padding-left: 5px;
	border: none;
}

.shiraz-dtable-textbox:focus {
	outline: none;
	border: 1px solid #5778d8;
	background: transparent;
}

.tbl-inpt-edit { width: 100%; background-color: transparent; border: none; color: #000000;}

button.tbl-sort-svg > svg { text-shadow: none; fill:#000000; height:10px; padding:0 0 2px 0; }

th .tc-tiddlylink, th a { text-shadow: none; margin: 0 0 0 0; padding: 0 0 0 0; color:#000000; font-weight: bold; }


/* DELETE CONFIRMATION */
table thead .tbl-delete-confirm > th {
	color: white;
	background-color:#ff0033;
	padding: 8px;
	margin: 0px;
	text-align:center;
	font-weight:normal;
}

table thead .tbl-delete-confirm > th > button {
	color: white;
	fill: white;
}

/* -- pagination --*/
.shiraz-dtable-page-footer td{
	margin: 0 0 0 0;
	padding: 4px 7px 4px 7px;
}

.shiraz-dtable-page-footer select{
	padding:0;
	margin:0;
	border:none;	
}

.shiraz-dtable-page-footer {
	text-align:center;
}

.shiraz-dtable-page-prev{
	float:left;
	margin-right:8px;
}

.shiraz-dtable-page-next{
	float:right;
	margin-left:8px;
}

.shiraz-dtable-page-footer button svg {height:0.7em;}
.shiraz-dtable-page-footer button {outline: none; line-height:normal;}
.shiraz-dtable-page-footer button:disabled {display:none;}

/* to format the expanded record (tiddler body) - for local customization like KaTeX numbering */
.shiraz-dtable-expanded-record{ }

/*to adjust the column width for date/due-date fields*/
.shiraz-dtable-date,
.shiraz-dtable-status{
	width:6em;
}
.shiraz-dtable-priority{
		width:6.5em;
}
/* this ensure short title in small width table */
.shiraz-dtable-title{
	max-width: 15rem;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}mark.kk-sh-highlight {
	background-color: unset;
	border-radius:0.4em;
	padding:0 0.25em 0.1em;
}

mark.kk-sh-highlight-pen {
	background-color: unset;
	background-position: top left;
	background-repeat: no-repeat;
	background-size: 100% auto;
}

/*Image aligning classes*/
.image-align-right{
    float:right;
    margin:0.5em 0 1.3em 1.4em;
}
.image-align-left{
    float:left;
    margin: 0.5em 1.4em 1.3em 0;
}
.image-align-center{
  display:block;
  margin: 0.5em auto 1.3em; 
}

.image-float-none {
  float: none !important;
}.image-basic {
  text-align: center;
  font-style: italic;
  font-size: smaller;
  text-indent: 0;
  padding: 0.5em;
}.image-overlay-container{
  width: 50%; 
  box-sizing: border-box;
}

@media screen and (max-width: 640px){
  .image-overlay-container{
    display: block;
    width: 100%;
  }
}

@media screen and (min-width: 900px){
  .image-overlay-container{
    width: 33.33%;
  }
}

.image-overlay-container .image-overlay-title{
  color: #1a1a1a;
  text-align: center;
  margin-bottom:10px;
}

.image-overlay-content {
  position: relative;
  width: 90%;
  max-width: 400px;
  margin: auto;
  overflow: hidden;
}

.image-overlay-content .image-overlay-content-overlay {
  background: rgba(0,0,0,0.7);
  position: absolute;
  height: 99%;
  width: 100%;
  left: 0;
  top: 0;
  bottom: 0;
  right: 0;
  opacity: 0;
  -webkit-transition: all 0.4s ease-in-out 0s;
  -moz-transition: all 0.4s ease-in-out 0s;
  transition: all 0.4s ease-in-out 0s;
}

.image-overlay-content:hover .image-overlay-content-overlay{
  opacity: 1;
}

.image-overlay-content-image{
  width: 100%;
}

.image-overlay-content-details {
  position: absolute;
  text-align: center;
  padding-left: 1em;
  padding-right: 1em;
  width: 100%;
  top: 50%;
  left: 50%;
  opacity: 0;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  -webkit-transition: all 0.3s ease-in-out 0s;
  -moz-transition: all 0.3s ease-in-out 0s;
  transition: all 0.3s ease-in-out 0s;
}

.image-overlay-content:hover .image-overlay-content-details{
  top: 50%;
  left: 50%;
  opacity: 1;
}

.image-overlay-content-details h3{
  color: #fff;
  font-weight: 500;
  letter-spacing: 0.15em;
  margin-bottom: 0.5em;
  text-transform: uppercase;
}

.image-overlay-content-details p{
  color: #fff;
  font-size: 0.8em;
}

.image-overlay-fadeIn-bottom{
  top: 80%;
}

.image-overlay-fadeIn-top{
  top: 20%;
}

.image-overlay-fadeIn-left{
  left: 20%;
}

.image-overlay-fadeIn-right{
  left: 80%;
}.image-polaroid {
  min-width:64px;
  background-color: #f8f9fa;
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
.image-polaroid img {
    width: 100%;
    padding:10px;
    height: auto;
}
.image-polaroid .image-polaroid-caption {
    padding:10px 15px 10px;
    text-align: center; 
    line-height: 1.4em;
    font-weight:300;
    font-size: 0.9em; 
}.image-pretty {
    min-width:64px;
    border: 1px solid #c8ccd1;
    background-color:#f8f9fa;
}
.image-pretty:hover {
    border: 1px solid #777;
}
.image-pretty img {
    padding:2px;
    width: 100%;
    height: auto;
}
.image-pretty .image-pretty-caption {
    padding:10px 15px 10px;
    text-align: center; 
    line-height: 1.4em;
    font-weight:300;
    font-size: 0.9em; 
}

.image-slidein { 
  display: block; 
  position: relative; 
  /*float: left;*/
  overflow: hidden; 
 /* margin: 0 20px 20px 0;*/
}

.image-slidein img {
    width: 100%;
    height: auto;
}

.image-slidein figcaption { 
  position: absolute; 
  background: rgba(0,0,0,0.75); 
  color: white; 
  padding: 10px 20px; 
  opacity: 0;
  -webkit-transition: all 0.6s ease;
  -moz-transition:    all 0.6s ease;
  -o-transition:      all 0.6s ease;
}
.image-slidein:hover figcaption {
  opacity: 1;
}
.image-slidein:before { 
  content: "?"; 
  position: absolute; 
  font-weight: 800; 
  background: rgba(255,255,255,0.75); 
  text-shadow: 0 0 5px white;
  color: black;
  width: 24px;
  height: 24px;
  -webkit-border-radius: 12px;
  -moz-border-radius:    12px;
  border-radius:         12px;
  text-align: center;
  font-size: 14px;
  line-height: 24px;
  -moz-transition: all 0.6s ease;
  opacity: 0.75;	
}
.image-slidein:hover:before {
  opacity: 0;
}

.mr-cap-left:before {  bottom: 10px; left: 10px; }
.mr-cap-left figcaption { bottom: 0; left: -30%; }
.mr-cap-left:hover figcaption { left: 0; }

.mr-cap-right:before { bottom: 10px; right: 10px; }
.mr-cap-right figcaption { bottom: 0; right: -30%; }
.mr-cap-right:hover figcaption { right: 0; }

.mr-cap-top:before { top: 10px; left: 10px; }
.mr-cap-top figcaption { left: 0; top: -30%; }
.mr-cap-top:hover figcaption { top: 0; }

.mr-cap-bottom:before { bottom: 10px; left: 10px; }
.mr-cap-bottom figcaption { left: 0; bottom: -30%;}
.mr-cap-bottom:hover figcaption { bottom: 0; }
.mono {
	color:unset;
	background-color: #f7f7f9;
	border: 1px solid #e1e1e8;
	white-space: pre-wrap;
	padding: 0 3px 2px;
	border-radius: 3px;
	font-family: "SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace;
}/* multicolumn layouts with fixed column number works on the whole tiddler */
.multicol .tc-tiddler-body {
  column-width: 14em;
  column-rule: 1px solid #ccc;
}
/* two columns responsive*/
.multicol2 .tc-tiddler-body {
	column-count:2; 
	column-width:15em;
}
/* three columns responsive*/
.multicol3 .tc-tiddler-body {
	column-count:3; 
	column-width:10em;
}


/* remove the extra space from first paragraph */
.multicol .tc-tiddler-body > :first-child, 
.multicol2 .tc-tiddler-body > :first-child, 
.multicol3 .tc-tiddler-body > :first-child { margin-top: 0;}

/*-------------------------------------------------------------------------------*/
/* Classes for using with macro and div elements */
.sh-multicol {
  column-width: 14em;
  column-rule: 1px solid #ccc;
}
/* two columns responsive*/
.sh-multicol2 {
	column-count:2; 
	column-width:15em;
}
/* three columns responsive*/
.sh-multicol3 {
	column-count:3; 
	column-width:10em;
}

/* remove the extra space from first paragraph */
.sh-multicol  > :first-child,
.sh-multicol2 > :first-child,
.sh-multicol3 > :first-child { margin-top: 0;}/* multicolumn layout using flexbox courtesy from Bootstrap 4.3.1*/
.flex-row {
   display: flex;
   flex-direction: row;
   flex-wrap: wrap;
/*   margin-right: -15px;
   margin-left: -15px;*/
}

.flex-col,
.flex-col-1, 
.flex-col-2, 
.flex-col-3,
.flex-col-4 {
  position: relative;
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
}

/* for small screen width>=576px
https://getbootstrap.com/docs/4.3/layout/grid/
*/
@media (min-width: 576px) {
.flex-col   {flex: 1 1 0; max-width: 100%;}
.flex-col-1 {flex: 0 0 25%; max-width:25%}
.flex-col-2 {flex: 0 0 50%; max-width:50%}
.flex-col-3 {flex: 0 0 75%; max-width:75%}
.flex-col-4 {flex: 0 0 100%; max-width:100%}
}

.flex-col   > :first-child,
.flex-col-1 > :first-child,
.flex-col-2 > :first-child,
.flex-col-3 > :first-child,
.flex-col-4 > :first-child {
  margin-top: 0;}


/* Alignment */
.flex-align-items-center {
  align-items: center !important;
}
.flex-justify-content-center {
  justify-content: center !important;
}

.flex-no-gutters {
  margin-right: 0;
  margin-left: 0;
}@media print{
  .notebook .tc-tiddler-body {
    padding-left:60px;
    margin-top:25px;
  }
  .notebook .tc-tiddler-title,
  .notebook .tc-subtitle,
	.notebook .tc-tags-wrapper {
    padding-left:60px;
  }
}

@media screen{
  .notebook .tc-tiddler-title,
  .notebook .tc-subtitle,
	.notebook .tc-tags-wrapper,
	.notebook .tc-tiddler-body {
    padding-left:30px;
  }

}	

@media screen and (max-width:960px) {
  .notebook .tc-tiddler-title,
  .notebook .tc-subtitle,
    .notebook .tc-tags-wrapper,
    .notebook .tc-tiddler-body {
    padding-left:60px;
  }

}
/*prevent applying left border in edit mode */
.notebook:not([data-tiddler-title^="Draft of"]):before {
    content: '';
    position: absolute;
    top: 0; bottom: 0; left: 0;
    width: 50px;
    background: radial-gradient(#575450 6px, transparent 7px) repeat-y;
    background-size: 30px 30px;
    border-right: 3px solid #D44147;
	  z-index:1;
}

.notebook .tc-tiddler-body {
	  position: relative;
    background: linear-gradient(transparent, transparent 1.95em, #91D1D3 1.95em);
    background-size: 2em 2em;
	  min-height:90px;   
}

.notebook .tc-tiddler-body{
	   padding-top:20px;
     font-family: "Handlee", cursive;
     font-weight:300;
     line-height:2em;
     color:#696969;
}

/* Setting font for other elements */
.notebook .tc-tiddler-body pre,
.notebook .tc-tiddler-body code,
.notebook .tc-tiddler-body pre code
{
  font-family: "Handlee", cursive;
  font-weight:300;
}.sticky-footer {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 0.5rem;
  background-color: #efefef;
  text-align: center;
  margin-top: 5px;
  box-sizing: border-box;
  width: 100%;
}
.table-tight{
	font-size:0.8em;
}


/*
This tiddler defines the custom stylesheet for tables 
April 13, 2018
*/

/*center aligned table*/
.table-center {
 margin:0 auto;
}

/* Table caption at top */
.table-caption-top caption {
 caption-side:top;
 margin-bottom:0.2rem;
}

/* Striped row table */
.table-striped-row tr:nth-child(even) td{
  background-color:#F3F6F6; 
}

/* Striped column table */
.table-striped-col tbody tr td:nth-child(odd) {
	background-color: #F3F6F6;
}

/*Borderless table*/
.table-borderless, 
.table-borderless thead td, 
.table-borderless th, 
.table-borderless tr, 
.table-borderless td{
  border:0;
}

/* Table lines should be used with table-borderless for abbreviations and two column layout */

.table-lines thead td, .table-lines th{
   border-bottom: 2px solid #dddddd;
	 background-color:unset;
   }
.table-lines td{
   border-bottom: 1px solid #dddddd;
   background-color:unset;
   }

/* Table hover (yellow background on mouse over) */
.table-hover tbody tr:hover{
  color: #212529;
  background-color: #e6e6e6;
}
.table-hover-yellow tbody tr:hover{background-color: #ffffcc;}
.table-hover-cyan tbody tr:hover{background-color: #e6ffff;}

/* Table with colored header */
.thead-primary thead td, .thead-primary th{background-color: #007bff; color: #fff;}
.thead-secondary thead td, .thead-secondary th{background-color: #6c757d; color: #fff;}
.thead-success thead td, .thead-success th{background-color: #28a745; color: #fff;}
.thead-warning thead td, .thead-warning th{background-color: #ffc107; color: #fff;}
.thead-danger thead td, .thead-danger th{background-color: #dc3545; color: #fff;}
.thead-info thead td, .thead-info th{background-color: #17a2b8; color: #fff;}
.thead-dark thead td, .thead-dark th{background-color: #343a40; color: #fff;}
.thead-light thead td, .thead-light th{background-color: #f8f9fa; color: #212529;}

/* Table with colored header correct to fill svgs with white color */
.thead-primary > thead> tr > td svg, .thead-primary > thead> tr > th svg,
.thead-secondary > thead> tr > td svg, .thead-secondary > thead> tr > th svg,
.thead-success > thead> tr > td svg, .thead-success > thead> tr > th svg,
.thead-warning > thead> tr > td svg, .thead-warning > thead> tr > th svg,
.thead-danger > thead> tr > td svg, .thead-danger > thead> tr > th svg,
.thead-info > thead> tr > td svg, .thead-info > thead> tr > th svg,
.thead-dark > thead> tr > td svg, .thead-dark > thead> tr > th svg
 {fill:#ffffff; padding:0 0 3px 0; }


.thead-primary th .tc-tiddlylink, .thead-primary th a,
.thead-secondary th .tc-tiddlylink, .thead-primary th a,
.thead-success th .tc-tiddlylink, .thead-primary th a,
.thead-warning th .tc-tiddlylink, .thead-primary th a,
.thead-danger th .tc-tiddlylink, .thead-primary th a,
.thead-info th .tc-tiddlylink, .thead-primary th a,
.thead-dark th .tc-tiddlylink, .thead-primary th a{color:#ffffff}
.title-primary .tc-title {
  color: #007bff;
}
.title-secondary .tc-title {
  color: #6c757d;
}
.title-success .tc-title {
  color: #28a745;
}
.title-info .tc-title {
  color: #17a2b8;
}
.title-warning .tc-title {
  color: #ffc107;
}
.title-danger .tc-title {
  color: #dc3545;
}
.title-light .tc-title {
  color: #f8f9fa;
}
.title-dark .tc-title {
  color: #343a40;
}
.title-white .tc-title {
  color: #fff;
}/* These css rules makes page control buttons in beatiful color */

/*page control buttons*/
.tc-page-controls .tc-image-new-button { fill: #5EB95E; } /*New tiddler button*/
.tc-page-controls .tc-image-options-button { fill:#8058A5; } /*Open control pannel*/

/* These css rules makes tiddler viewtoolbar buttons in beatiful color */

.tc-tiddler-controls .tc-image-edit-button{fill:#f37b1d}
.tc-tiddler-controls .tc-image-info-button{fill:#0e90d2}/* trashbin main ui */
.kk-trashbin-ui{
	min-width:320px; /* controls the minimum width of whole ui */
}

.kk-trahbin-ui svg{
    fill:#aaaaaa;
}

.kk-trahbin-ui .kk-trahbin-ui-controls svg{
 width:1.2em;
 height:1.2em;	
}


/* trashbin items list ui */
.kk-trashbin-row{
	display: flex;	
	width: 95%;
	flex-wrap: wrap;
}


.kk-trashbin-row .kk-trashbin-delete,
.kk-trashbin-row .kk-trashbin-restore {
	flex-grow:0; width:20px;
	margin-left:5px;
}

.kk-trashbin-row .kk-trashbin-link{
	flex-grow:1; 
	width: calc(100% - 50px); 
	padding-right: 10px;
}

.kk-trashbin-row:hover { background-color: #f6f6f6; }

/* UI button fade-in*/
.kk-trahbin-ui   button:hover svg         { fill: #000000; }
.kk-trahbin-ui  .kk-trashbin-ui-btn       { opacity:0.5; }
.kk-trahbin-ui  .kk-trashbin-ui-btn:hover { opacity:1.0; }[data-tags~="$:/tags/trashbin"] .tc-tiddler-body,
[data-tags~="$:/tags/trashbin"] .tc-tags-wrapper
{
 display:none;
}
/* set style for trashed tiddlers */
[data-tags ~="$:/tags/trashbin"] { border: 1px solid crimson; }.horizontal-list-links {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  max-height: 250px;
  overflow-y: auto;
  padding: 0;
  list-style-type: none;
}
.horizontal-list-links::-webkit-scrollbar {
	width: 0 !important
}.horizontal-list-links li a,
.horizontal-list-links li a:hover {
  line-height: unset;
  background-color: unset;
  border: none;
  padding: 5px;
  line-height: 1.8;
}
/*!
 * Pikaday
 * Copyright © 2014 David Bushell | BSD & MIT license | https://dbushell.com/
 */

.pika-single {
    z-index: 9999;
    display: block;
    position: relative;
    color: #333;
    background: #fff;
    border: 1px solid #ccc;
    border-bottom-color: #bbb;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

/*
clear child float (pika-lendar), using the famous micro clearfix hack
http://nicolasgallagher.com/micro-clearfix-hack/
*/
.pika-single:before,
.pika-single:after {
    content: " ";
    display: table;
}
.pika-single:after { clear: both }

.pika-single.is-hidden {
    display: none;
}

.pika-single.is-bound {
    position: absolute;
    box-shadow: 0 5px 15px -5px rgba(0,0,0,.5);
}

.pika-lendar {
    float: left;
    width: 240px;
    margin: 8px;
}

.pika-title {
    position: relative;
    text-align: center;
}

.pika-label {
    display: inline-block;
    position: relative;
    z-index: 9999;
    overflow: hidden;
    margin: 0;
    padding: 5px 3px;
    font-size: 14px;
    line-height: 20px;
    font-weight: bold;
    background-color: #fff;
}
.pika-title select {
    cursor: pointer;
    position: absolute;
    z-index: 9998;
    margin: 0;
    left: 0;
    top: 5px;
    opacity: 0;
}

.pika-prev,
.pika-next {
    display: block;
    cursor: pointer;
    position: relative;
    outline: none;
    border: 0;
    padding: 0;
    width: 20px;
    height: 30px;
    /* hide text using text-indent trick, using width value (it's enough) */
    text-indent: 20px;
    white-space: nowrap;
    overflow: hidden;
    background-color: transparent;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 75% 75%;
    opacity: .5;
}

.pika-prev:hover,
.pika-next:hover {
    opacity: 1;
}

.pika-prev,
.is-rtl .pika-next {
    float: left;
    background-image: url('');
}

.pika-next,
.is-rtl .pika-prev {
    float: right;
    background-image: url('');
}

.pika-prev.is-disabled,
.pika-next.is-disabled {
    cursor: default;
    opacity: .2;
}

.pika-select {
    display: inline-block;
}

.pika-table {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    border: 0;
}

.pika-table th,
.pika-table td {
    width: 14.285714285714286%;
    padding: 0;
}

.pika-table th {
    color: #999;
    font-size: 12px;
    line-height: 25px;
    font-weight: bold;
    text-align: center;
}

.pika-button {
    cursor: pointer;
    display: block;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    outline: none;
    border: 0;
    margin: 0;
    width: 100%;
    padding: 5px;
    color: #666;
    font-size: 12px;
    line-height: 15px;
    text-align: right;
    background: #f5f5f5;
    height: initial;
}

.pika-week {
    font-size: 11px;
    color: #999;
}

.is-today .pika-button {
    color: #33aaff;
    font-weight: bold;
}

.is-selected .pika-button,
.has-event .pika-button {
    color: #fff;
    font-weight: bold;
    background: #33aaff;
    box-shadow: inset 0 1px 3px #178fe5;
    border-radius: 3px;
}

.has-event .pika-button {
    background: #005da9;
    box-shadow: inset 0 1px 3px #0076c9;
}

.is-disabled .pika-button,
.is-inrange .pika-button {
    background: #D5E9F7;
}

.is-startrange .pika-button {
    color: #fff;
    background: #6CB31D;
    box-shadow: none;
    border-radius: 3px;
}

.is-endrange .pika-button {
    color: #fff;
    background: #33aaff;
    box-shadow: none;
    border-radius: 3px;
}

.is-disabled .pika-button {
    pointer-events: none;
    cursor: default;
    color: #999;
    opacity: .3;
}

.is-outside-current-month .pika-button {
    color: #999;
    opacity: .3;
}

.is-selection-disabled {
    pointer-events: none;
    cursor: default;
}

.pika-button:hover,
.pika-row.pick-whole-week:hover .pika-button {
    color: #fff;
    background: #ff8000;
    box-shadow: none;
    border-radius: 3px;
}

/* styling for abbr */
.pika-table abbr {
    border-bottom: none;
    cursor: help;
}
.py-cards {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-bottom: 20px;
}.py-cards span {
  width: calc(33% - 12px);
}@media (max-width: 960px) {
  .py-cards span {
    width: calc(50% - 11px);
  }
}.py-card-wrapper {
  /* Default background-color */
  background-color: rgba(255,255,0,.15);
  border-radius: 8px;
  transition: box-shadow ease-in .14s;
}.py-cards .tc-dragover .py-card-wrapper .py-card {
  background: rgba(0,125,255,.3);
  box-shadow: 0 0 0 4px rgba(0,125,255,.3);
}.py-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  text-decoration: none;
  color: #333333;
  border-radius: 8px;
  box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3);
  padding: 20px;
  height: 150px;
  font-size: .9em;
}.py-card-wrapper:hover {
  box-shadow: 0 0 0 4px rgba(0,125,255,.3);
}.py-card-head {
  overflow: hidden;
  height: 4.6em;
  line-height: 1.2em;
}.py-card .py-card-head h3 {
  font-weight: bold;
  font-size: 1em;
  margin: 0;
  margin-right: 10px;
}.py-card .py-card-options {
  position: absolute;
  top: 4px;
  right: 8px;
}.py-card .py-description {
  opacity: .7;
  font-size: .9em;
}.py-card .py-project-category {
  font-size: .9em;
  font-weight: bold;
  text-align: center;
  padding: 1px;
  margin-bottom: -20px;
  margin-left: -20px;
  margin-right: -20px;
  background: rgba(0,0,0,.1);
  border-bottom-left-radius: 8px;
  border-bottom-right-radius: 8px;
}
.py-category-pill {
  position: relative;
  width: 1em;
  height: 1em;
  display: inline-block;
  vertical-align: middle;
  border-radius: 50%;
  background: #ffffff;
}.py-category-pill::after {
  content: " ";
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  border-radius: 50%;
  border: 1px solid #bbb;
}.py-category-wrapper {
  margin-top: -4px;
  margin-bottom: 10px;
}
.py-date-picker .py-date-today {
  color: #5778d8;
}.py-date-picker .py-date-today svg {
  fill: #5778d8;
}.py-date-picker .py-date-clear {
  color: #e73939;
}.py-date-picker .py-date-clear svg {
  fill: #e73939;
}.py-date-picker .pika-single {
  margin: 0;
  border: 0;
  padding: 6px;
  color: #333333;
  background: transparent;
}.py-date-picker .pika-lendar {
  margin: 0;
  border: 0;
  width: 100%;
}.py-date-picker .pika-lendar .pika-table {
  margin: 0;
}.py-date-picker .pika-lendar .pika-table th {
  background: transparent;
  font-weight: bold;
  color: #bbb;
}.py-date-picker .pika-lendar button,
.py-date-picker .pika-button {
  border-radius: 0;
  background-color: transparent;
  text-align: center;
}.py-date-picker .pika-button {
  padding: 6px 8px !important;
}.py-date-picker .pika-prev,
.py-date-picker .pika-next {
  padding: 4px;
  width: 20px;
}.py-date-picker .pika-lendar button:hover,
.py-date-picker .pika-lendar button:active,
.py-date-picker .pika-next {
  background-color: #5778d8;
  color: #ffffff;
  border-radius: 3px;
}.py-date-picker .pika-lendar .is-selected .pika-button,
.py-date-picker .pika-lendar .has-event .pika-button {
  background: #bbb;
  color: #ffffff;
  box-shadow: none;
  border-radius: 3px;
}.py-date-picker .pika-label {
  background-color: transparent;
  color: #333333;
}.py-date-picker .pika-lendar table th,
.py-date-picker .pika-lendar table td {
  border: 0 none;
}
.py-btn {
  border-radius: 1.5em;
  border: 1px solid #ccc;
  background: #ffffff;
  padding: .3em 1em;
  cursor: pointer;
  transition: box-shadow ease-in .1s;
}.py-btn:focus {
  outline: 0 none;
}.py-btn:active {
  box-shadow: 0 0 0 0.2rem rgba(0,0,0,.08);
}.py-btn.btn-small {
  font-size: .9em;
  padding: .2em .8em;
}.py-btn.btn-primary {
  background-color: #5778d8;
  border-color: #5778d8;
  color: #ffffff;
  fill: #ffffff;
}.py-btn.btn-primary:active {
  box-shadow: 0 0 0 0.2rem rgba(0,125,255,.3);
}.py-btn.btn-danger {
  border-color: #e73939;
  color: #e73939;
  fill: #e73939;
}.py-btn.btn-danger:active {
  box-shadow: 0 0 0 0.2rem rgba(255,0,0,.2);
}.py-form .py-control-group {
  margin: 8px 0;
}.py-form .py-control-group .py-label {
  padding: 0;
}.py-actions {
  margin: 10px 0 20px 0;
}.py-form .py-actions {
  margin-top: 20px;
}.py-composite-input {
  position: relative;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid #cccccc;
}.py-composite-input:focus-within {
  border-color: #5778d8;
}.py-composite-input input.py-input {
  border: none;
  width: 100%;
  padding: 5px 0;
}.py-composite-input input.py-input:focus {
  border: none;
  box-shadow: none;
}.py-composite-input .py-todo-actions {
  margin-top: 6px;
  font-size: .9em;
}input.py-input {
  transition: border .14s ease-in-out;
  border: 1px solid #cccccc;
  padding: 8px;
  border-radius: 4px;
  width: 300px;
}input.py-input:focus {
  box-shadow: 0 0 0.2rem 0 #5778d8;
  outline: 0;
  border-color: #5778d8;}input.py-input.input-larger {
  width: 450px;
  max-width: 100%;
}input.py-input.input-large {
  width: 100%;
  padding: .5em 1em;
  font-size: 1.1em;
}.py-todo input[type="checkbox"],
.py-toggle-todo-button input[type="checkbox"] {
  display: none;
}.py-checkbox {
  color: #bbb;
  cursor: pointer;
  transition: all ease-in .2s;
}.py-todo .py-checkbox {
  margin-right: 3px;
}.py-checkbox .todo-hover {
  display: none;
}.py-checkbox:hover .todo-hover {
  display: initial;
}.py-checkbox:hover .todo {
  display: none;
}.py-checkbox:hover {
  color: #2da562;
}.py-checkbox .done {
  color: #2da562;
}.py-popup {
  background: #ffffff;
  border-radius: 8px;
  box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.3);
  padding: 5px 20px;
  width: 350px;
}
/* Notebook sidebar */.nc-sidebar .py-projects {
  margin: 0;
  border: 0;
}.nc-sidebar .py-projects .py-project {
  border-bottom: 0;
}.nc-sidebar dl {
  margin: 0;
}
[data-tiddler-title^="$:/plugins/nico/projectify/QuickCapture"] .tc-title,
[data-tiddler-title^="$:/plugins/nico/projectify/QuickCapture"] .tc-subtitle {
  display: none;
}[data-tiddler-title^="$:/plugins/nico/projectify/QuickCapture"] svg {
  fill: #5778d8;
  vertical-align: middle;
  width: 1.2em;
  height: 1.2em;
  margin-right: 6px;
}
.py-projects-heading {
  display: flex;
  justify-content: space-between;
}.py-projects-heading h2 {
  margin: 0;
  display: inline-block;
}@media (max-width: 960px) {
  .py-projects-heading {
    display: block;
  }.py-projects-heading .py-title {
    margin-bottom: 20px;
  }
}.py-projects-heading > button {
  display: inline-block;
  margin-left: 5px;
}.tc-titlebar .py-checkbox svg {
  width: 26px;
  height: 26px;
  fill: #cccccc;
}.tc-titlebar .py-checkbox .done svg {
  width: 26px;
  height: 26px;
  fill: #2da562;
}.py-reorder-projects:not([hidden]) {
  display: block;
}.py-projects, .py-todos {
  padding-left: 0;
}.py-projects .py-project,
.py-todos .tc-menu-list-item {
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}.py-projects,
.py-todos .tc-menu-list-item:first-child {
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}.py-todo {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding: 5px 0;
}.py-project {
  list-style: none;
  padding: 5px 0;
}.py-project a {
  font-weight: bold;
}.py-project .py-project-infos {
  font-size: .8em;
  line-height: 1em;
  color: #bbb;
  margin-left: 20px;
}.py-project .py-project-heading {
  display: flex;
  justify-content: space-between;
}.py-project .py-project-heading .py-project-category {
  font-size: .9em;
  white-space: nowrap;
}/* Align the completed todos with the non-completed ones that have a drag
   handle. TODO: Check why the padding is different from the drag-handle's width
   */
.py-completed-todos .py-todo .py-checkbox {
  padding-left: 22px;
}.py-todo .tc-tiddlylink:hover {
  text-decoration: none;
}.py-todo .py-todo-actions {
  float: right;
}.py-todo .py-btn.py-priority {
  border: none;
}.py-todo .py-project-link {
  font-size: .8em;
  color: #aaa;
}.py-todo .py-todo-text-icon {
  color: #999;
  fill: #999;
}.py-todo.py-completed a {
  color: #bbb;
}.py-todo-heading {
  margin-top: 4px;
  margin-bottom: 14px;
}.py-todo-heading .py-btn {
  font-size: .9em;
  padding: .3em .9em;
}.py-todo-actions .py-btn,
.py-todo .py-btn.py-priority {
  color: #999;
  fill: #999;
  padding: 4px 8px;
  border-radius: 4px;
}.py-due-date.py-overdue {
  color: #ffffff;
  background: #e73939;
  border-color: #e73939;
  font-weight: bold;
}.py-due-date.py-due-today {
  color: #5778d8;
  fill: #5778d8;
  border-color: #5778d8;
}.py-todo .py-todo-actions .py-btn {
  font-size: .8em;
  margin-left: 6px;
}@media (min-width: 960px) {
  .py-todo .py-todo-actions .py-btn.py-not-scheduled,
  .py-todo .py-todo-actions .py-btn.py-priority- {
    opacity: 0;
    transition: opacity ease-in .14s;
  }.py-todo:hover .py-todo-actions .py-btn {
    opacity: 1 !important;
  }
}.py-projects .tc-droppable.tc-dragover {
  background: rgba(255,255,100,0.3);
  display: block;
}.py-tabs.tc-tab-buttons button {
  font-weight: bold;
  font-size: 1.2em;
  border: 0;
  padding: .6em .8em .4em .8em;
  background: transparent;
  cursor: pointer;
  color: #182955;
}@media (max-width: 960px) {
  .py-tabs.tc-tab-buttons button {
    font-size: .8em;
    padding: 8px;
  }.py-tabs.tc-tab-buttons button svg {
    display: block;
    width: 1.5rem;
    height: 1.5rem;
    margin: 0 auto 6px auto;
  }
}.py-tabs.tc-tab-buttons button.tc-tab-selected {
  border: 0;
  border-bottom: 4px solid #5778d8;
  color: #182955;
}.py-scheduled-drop-down h4 {
  margin: 5px 10px;
  color: #333333;
  font-weight: bold;
}.py-scheduled-drop-down .clear {
  margin: 5px 10px;
}.tc-drop-down.py-drop-down {
  min-width: 200px;
}.tc-drop-down.py-drop-down .tc-btn-invisible {
  font-size: 14px;
  line-height: 2em;
}.tc-drop-down.py-drop-down .tc-btn-invisible svg {
    margin-right: 6px;
}.tc-drop-down.py-drop-down hr {
  margin: 2px 0;
  padding: 0;
  border: 0;
  border-bottom: 1px solid #bbb;
}.tc-drop-down .py-priorities {
  display: flex;
  align-items: space-between;
}.tc-drop-down .py-priorities .tc-btn-invisible {
  width: auto;
  text-align: center;
}.py-priority-3, .py-priority-3 svg,
.py-drop-down .py-priority-3,
.py-drop-down .py-priority-3 svg,
.py-btn.py-priority-3 {
  fill: #e73939;
  color: #e73939;
}.py-priority-2, .py-priority-2 svg,
.py-drop-down .py-priority-2,
.py-drop-down .py-priority-2 svg,
.py-btn.py-priority-2 {
  fill: #e77a39;
  color: #e77a39;
}.py-priority-1, .py-priority-1 svg,
.py-drop-down .py-priority-1,
.py-drop-down .py-priority-1 svg,
.py-btn.py-priority-1 {
  fill: #24cd5e;
  color: #24cd5e;
}.py-project-category-manager-table {
  width: 100%;
}.py-project-category-manager-table td {
  padding: 4px;
}.py-project-category-manager-table input {
  width: 100%;
}.py-project-category-manager-table input[type="color"] {
  width: 50px;
  padding: 3px;
}
.py-link-muted {
  text-decoration: underline;
  color: #bbb;
}.py-link-muted:hover,
.py-link-muted:active {
  color: #5778d8;
}.py-icon {
  vertical-align: middle;
}.py-pie circle {
  stroke: #5778d8;
  fill: #ffffff;
}
    
.py-due-date svg {
  width: 1em;
  height: 1em;
}.py-label {
  display: block;
  font-size: .8em;
  opacity: .6;
  padding: 4px 0;
}.py-right-aligned {
  text-align: right;
}.py-drag-handle {
  color: #bbb;
  width: 18px;
  display: inline-block;
}.py-drag-handle svg {
  vertical-align: middle;
}.py-banner {
  padding: 10px 20px;
  background: #ffffdd;
  border: 1px solid #999999;
  margin: 10px 0;
  border-radius: 3px;
}.py-banner button {
  text-decoration: underline;
}.py-tip {
  margin: 10px;
  background: #ffffdd;
  color: ;
  padding: 10px;
  border-radius: 6px;
}.py-tip-icon {
  font-size: 1.2em;
}.py-count {
  background: #df3f3f;
  color: white;
  font-weight: bold;
  padding: 6px;
  font-size: 12px;
  text-align: center;
  display: inline-block;
  border-radius: 24px;
  min-width: 24px;
  line-height: 1;
  vertical-align: middle;
}.py-count.info {
  background: #5778d8;
}.tc-tab-buttons .py-count {
  font-size: 10px;
  padding: 4px;
  min-width: 18px;
  margin-top: -0.5rem;
}.py-pill-container {
  position: relative;
}.py-pill-container .py-pill {
  position: absolute;
  top: 0;
  right: 2px;
  width: 8px;
  height: 8px;
  border-radius: 4px;
  background: #df3f3f;
}modified: 20210117210522162
/* Default sidebar */.py-sidebar-section {
  max-width: 500px;
}
.py-welcome {
  max-width: 800px;
  text-align: center;
  padding: 40px 20px;
  margin: 0 auto;
  background: #ecf2ff;
  color: #547599;
  border-radius: 12px;
}.py-welcome .icon {
  font-size: 4em;
}.py-welcome h3 {
  font-weight: bold;
}.py-welcome p {
  margin: 0;
}
:root {
    --palette-radius: 5px;
}
.commandpalette {
    position: fixed;
    background: #ffffff;
    z-index: 9999999;
    left: 50%;
    top: 10%;
    transform: translate(-50%, 0%);
    width: 500px;
    display: none;
    flex-direction: column;
    font-size: 21px;
    border-radius: var(--palette-radius);
    box-shadow: rgba(0, 0, 0, 0.15) 0px 0px 14px;
    border: 2px solid #f4f4f4;
}
.inputhintwrapper {
    display: flex;
    align-items: center;
    border-bottom: 1px solid #f4f4f4;
}
.commandpalette input {
    border: 0;
    background: 0;
    height: 40px;
    color: #333333;
    border-radius: var(--palette-radius) var(--palette-radius) 0px 0px;
    outline: 0;
    min-width: 50px;
    flex: 1;
    padding-left: 7px;
}
.commandpalettehint {
    color:  #333333;
    font-size: 13px;
    text-align: right;
    flex-shrink: 0;
    padding-right: 7px;
    opacity: 0.6;
}
.commandpaletteresultselected>.commandpalettehint {
    color: #ffffff;
    opacity: 1;
}
.commandpalettehintmain {}
.commandpaletteresult {
    background: #ffffff;
    font-size: 15px;
    color: #333333;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-left: 6px;
    padding-top: 4px;
    padding-bottom: 4px;
    cursor: pointer;
}
.commandpaletteresult:not(:last-child) {
    border-bottom: #f4f4f4 solid 1px;
}
.commandpaletteresult:hover:not(.commandpaletteresultselected) {
    background: #f4f4f4;
}
.commandpaletteresultselected {
    background: #5778d8;
    color: #f4f4f4;
}
.cp-scroll{
    max-height: 50vh;
    overflow-y: auto;
    position: relative;
    border-radius: 0px 0px var(--palette-radius) var(--palette-radius);
}/*!
  Theme: Default
  Description: Original highlight.js style
  Author: (c) Ivan Sagalaev <maniac@softwaremaniacs.org>
  Maintainer: @highlightjs/core-team
  Website: https://highlightjs.org/
  License: see project LICENSE
  Touched: 2021
*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#f3f3f3;color:#444}.hljs-comment{color:#697070}.hljs-punctuation,.hljs-tag{color:#444a}.hljs-tag .hljs-attr,.hljs-tag .hljs-name{color:#444}.hljs-attribute,.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-name,.hljs-selector-tag{font-weight:700}.hljs-deletion,.hljs-number,.hljs-quote,.hljs-selector-class,.hljs-selector-id,.hljs-string,.hljs-template-tag,.hljs-type{color:#800}.hljs-section,.hljs-title{color:#800;font-weight:700}.hljs-link,.hljs-operator,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#ab5656}.hljs-literal{color:#695}.hljs-addition,.hljs-built_in,.hljs-bullet,.hljs-code{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#38a}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}pre.hljs {
  padding: 0;
}pre code.hljs {
  padding: 0.5em;
}.hljs {
  background: #f8f8f8;
  color: #333333;
  -webkit-text-size-adjust:none;
}.hljs-comment,
.hljs-quote {
  color: #93a1a1;
}/* Solarized Green */
.hljs-keyword,
.hljs-selector-tag,
.hljs-addition {
  color: #859900;
}/* Solarized Cyan */
.hljs-number,
.hljs-string,
.hljs-meta .hljs-string,
.hljs-literal,
.hljs-doctag,
.hljs-regexp {
  color: #2aa198;
}/* Solarized Blue */
.hljs-title,
.hljs-section,
.hljs-name,
.hljs-selector-id,
.hljs-selector-class {
  color: #268bd2;
}/* Solarized Yellow */
.hljs-attribute,
.hljs-attr,
.hljs-variable,
.hljs-template-variable,
.hljs-class .hljs-title,
.hljs-type {
  color: #b58900;
}/* Solarized Orange */
.hljs-symbol,
.hljs-bullet,
.hljs-subst,
.hljs-meta,
.hljs-meta .hljs-keyword,
.hljs-selector-attr,
.hljs-selector-pseudo,
.hljs-link {
  color: #cb4b16;
}/* Solarized Red */
.hljs-built_in,
.hljs-deletion {
  color: #dc322f;
}.hljs-formula {
  background: #eee8d5;
}.hljs-emphasis {
  font-style: italic;
}.hljs-strong {
  font-weight: bold;
}
.xp-drop-up-wrapper {
	position: relative;
}.xp-drop-up,
.xp-drop-up-scope {
	min-width: 380px;
	border: 1px solid #bbb;
	background-color: #ffffff;
	padding: 7px 0 7px 0;
	margin: 4px 0 0 0;
	white-space: nowrap;
	text-shadow: none;
	line-height: 1.4;position: absolute;
	z-index: 600;
	bottom: 100%;
	margin-bottom: 2px;
	text-align: left;
}.xp-drop-up .xp-drop-up,
.xp-drop-up-scope {
	margin-left: 14px;
}.xp-drop-up button svg, .xp-drop-up a svg,
.xp-drop-up-scope button svg, .xp-drop-up-scope a svg {
	fill: #333333;
}.xp-drop-up button:disabled svg {
	fill: #bbb;
}.xp-drop-up button.tc-btn-invisible:hover svg,
.xp-drop-up-scope button.tc-btn-invisible:hover svg {
	fill: #ffffff;
}.xp-drop-up .xp-drop-up-info {
	padding-left: 14px;
}.xp-drop-up p,
.xp-drop-up-scope p {
	padding: 0 14px 0 14px;
}.xp-drop-up svg,
.xp-drop-up-scope svg {
	width: 1em;
	height: 1em;
}.xp-drop-up img,
.xp-drop-up-scope img {
	width: 1em;
}.xp-drop-up a, .xp-drop-up button,
.xp-drop-up-scope a, .xp-drop-up-scope button {
	display: block;
	padding: 0 14px 0 14px;
	width: 100%;
	text-align: left;
	color: #333333;
	line-height: 1.4;
}.xp-drop-up .tc-tab-set .tc-tab-buttons button {
	display: inline-block;
	width: auto;
	margin-bottom: 0px;
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
}.xp-drop-up .tc-prompt {
	padding: 0 14px;
}.xp-drop-up .tc-chooser {
	border: none;
}.xp-drop-up .tc-chooser .tc-swatches-horiz {
	font-size: 0.4em;
	padding-left: 1.2em;
}.xp-drop-up .tc-file-input-wrapper {
	width: 100%;
}.xp-drop-up .tc-file-input-wrapper button {
	color: #333333;
}.xp-drop-up a:hover, .xp-drop-up button:hover, .xp-drop-up .tc-file-input-wrapper:hover button,
.xp-drop-up-scope a:hover, .xp-drop-up-scope button:hover, .xp-drop-up-scope .tc-file-input-wrapper:hover button {
	color: #ffffff;
	background-color: #5778d8;
	text-decoration: none;
}.xp-drop-up .tc-tab-buttons button {
	background-color: #ececec;
}.xp-drop-up .tc-tab-buttons button.tc-tab-selected {
	background-color: #fff;
	border-bottom: 1px solid #fff;
}.xp-drop-up-bullet {
	display: inline-block;
	width: 0.5em;
}.xp-drop-up .tc-tab-contents a {
	padding: 0 0.5em 0 0.5em;
}.xp-block-dropup {
	position: absolute;
	min-width: 220px;
	border: 1px solid #bbb;
	background-color: #ffffff;
	padding: 7px 0;
	margin: 4px 0 0 0;
	white-space: nowrap;
	z-index: 1000;
	text-shadow: none;bottom: 100% !important;
	margin-bottom: 28px;
	text-align: left;
}/* ON PHONE */@media (max-width: 960px) {.xp-drop-up a, .xp-drop-up button,
	.xp-drop-up-scope a, .xp-drop-up-scope button {
		line-height: 1.6;
	}.xp-drop-up .tc-sidebar-tab-open a, .xp-drop-up .tc-sidebar-tab-open button {
		line-height: 1.5;
	}.xp-drop-up .tc-table-of-contents a, .xp-drop-up .tc-table-of-contents button {
		line-height: 1.4;
	}}nav.tc-quickbar {
	position: fixed;
	z-index: 850;
	display: inline-block;
	bottom: 0;
	right: 0;
	left: 0;
	border-radius: 40px / 50px;
	width: calc(20px 

 + 4px + 107.34px



 + 85.56px




+ 112px - 84px





 + 4px + 53.69px




+ 448px - 224px

- 15px




- 28px






 + 4px + 268.38px





 + 4px + 40.97px

 + 20px);
	margin: auto;
	text-align: center;
}
@-moz-document url-prefix() {
	nav.tc-quickbar {
		width: calc(20px 

 + 4px + 107.34px



 + 85.56px




+ 112px - 84px





 + 4px + 53.69px




+ 448px - 224px

- 15px




- 28px






 + 4px + 268.38px





 + 4px + 40.97px

 + 20px + 14px);
	}
}
nav.tc-quickbar:hover {
	opacity: 1;
}nav.tc-quickbar ul.tc-quickbar-list {
	position: relative;
	list-style-type: none;
	margin: 0;
	padding: 0 12px 0 12px;
	border-radius: 40px / 50px;
	background: #ffffff;
	background: #5778d8;
	
  -webkit-box-shadow: 1px -1px 5px rgba(0, 0, 0, 0.3);
     -moz-box-shadow: 1px -1px 5px rgba(0, 0, 0, 0.3);
          box-shadow: 1px -1px 5px rgba(0, 0, 0, 0.3);

}nav.tc-quickbar li.tc-quickbar-item {
	display: inline-block;
	margin: 0;
	padding: 0;
}nav.tc-quickbar li.tc-quickbar-item > a,
nav.tc-quickbar li.tc-quickbar-item > button {
	display: inline-block;
/* text-transform: uppercase; */
	line-height: 1;
	font-weight: 700;
	color: #333333;
	color: #fff;
	fill: #333333;
	fill: #fff;
	text-decoration: none;
	padding: 0.5em;
	margin: 0;
	background: none;
	border: none;
	cursor: pointer;
	border-radius: 0;
	text-decoration: none;
}nav.tc-quickbar li.tc-quickbar-item > a.tc-selected,
nav.tc-quickbar li.tc-quickbar-item > button.tc-selected {
	background: #333333;
	background: #fff;
	color: #ffffff;
	color: #5778d8;
	fill: #ffffff;
	fill: #5778d8;
}nav.tc-quickbar li.tc-quickbar-item svg {
	transition: none;
	width: 1em;
	height: 1em;
	fill: #333333;
	fill: #fff;
}nav.tc-quickbar li.tc-quickbar-item .tc-quickbar-dropup-arrow svg {
	width: 0.5em;
	height: 0.5em;
}nav.tc-quickbar li.tc-quickbar-item > a.tc-selected svg,
nav.tc-quickbar li.tc-quickbar-item > button.tc-selected svg {
	fill: #ffffff;
	fill: #5778d8;
}nav.tc-quickbar li.tc-quickbar-item > a:hover,
nav.tc-quickbar li.tc-quickbar-item > button:hover svg,
nav.tc-quickbar li.tc-quickbar-item > button:hover {
	background: #333333;
	background: #fff;
	color: #ffffff;
	color: #5778d8;
	fill: #ffffff;
	fill: #5778d8;
	border-radius: 0;
	text-decoration: none;
}nav.tc-quickbar li.tc-quickbar-item > a:active,
nav.tc-quickbar li.tc-quickbar-item > button:active svg,
nav.tc-quickbar li.tc-quickbar-item > button:active {
	background: #333333;
	background: #fff;
	color: #ffffff;
	color: #5778d8;
	fill: #ffffff;
	fill: #5778d8;
	border-radius: 0;
	text-decoration: none;
}/* Drop-up */nav.tc-quickbar .xp-drop-up,
nav.tc-quickbar .xp-block-dropup {
	max-width: 70vw;
	max-height: 70vh;
	overflow: auto;
	text-align: left;
}nav.tc-quickbar .xp-drop-up a {
	text-decoration: none;
}nav.tc-quickbar .xp-drop-up .tc-table-of-contents button {
	display: inline-block;
	width: auto;
}nav.tc-quickbar .xp-drop-up ol {
	margin: 0;
}/* Hover popup */.tc-quickbar-tooltip {
	position: relative;
	display: inline-block;
}.tc-quickbar-tooltip .tc-quickbar-tooltiptext {
	visibility: hidden;
	background: #ffffff;
	color: #333333;
	fill: #ffffff;
	text-align: left;
	border: 1px solid #bbb;
	padding: 8px 24px;
	min-width: 360px;
	max-height: 60vh;
	overflow-y: auto;/* Position the tooltip */
	position: absolute;
	z-index: 600;
	bottom: 100%;
	left: 50%;
	margin-left: -45px;
}.tc-quickbar-tooltip .tc-quickbar-tooltiptext img {
	width: 1em;
}.tc-quickbar-tooltip .tc-quickbar-tooltiptext svg {
	fill: #333333 !important;
	transition: none;
	width: 1em;
	height: 1em;
}.tc-quickbar-tooltip > a,
.tc-quickbar-tooltip > button {
	display: inline-block;
	padding: 0.5em;
	margin: 0;
}.tc-quickbar-tooltip:hover .tc-quickbar-tooltiptext {
	visibility: visible;
}.quickbar-tooltiptext-button button.tc-btn-invisible:hover svg {
	fill: #5778d8 !important;
}.quickbar-tooltiptext-button a, .quickbar-tooltiptext-button button {
	padding-left: 14px;
	padding-right: 14px;
}.quickbar-tooltiptext-button a:hover, .quickbar-tooltiptext-button button:hover {
	color: #5778d8 !important;
	fill: #5778d8 !important;
	background-color: none !important;
}/* Others */.xp-quickbar-divider {
	border-right: 1px solid #e4e4e4;
	border-image: linear-gradient(rgba(0, 0, 0, 0) 14%, #e4e4e4 14%) 1;
	-moz-border-image: none;
	padding-left: 4px;
	margin-right: 8px;
}.quickbar-active-indicator {
	box-shadow: inset 0 -2px #fff;
}.quickbar-buttonlist {
	width: 100%;
	text-align: left;
	border-bottom: 1px solid #e4e4e4;
	padding: 3px 0;
}.quickbar-search-margin {
	margin-left: 0.5em;
}.quickbar-advanced-search {
	margin-right: 0.5em !important;
}.tc-tab-buttons.quicksearch-tabs {
padding-top: 0;
margin-top: -0.5em;
}/* ON PC */@media (min-width: 960px) {nav.tc-quickbar {
		opacity: 0.75;
	
	
	}nav.tc-quickbar .xp-block-dropup {
		margin-bottom: 32.02px;
	}.xp-quickbar-searchbox {
		opacity: 0.67;
	
	}.xp-quickbar-searchbox:focus {
		opacity: 1;
	}.quickbar-search-margin {
	
		padding: 0 0.17em 0 0.5em;
	
	}.xp-quickbar-on-phone {
		display: none;
	}}/* ON PHONE */@media (max-width: 960px) {nav.tc-quickbar {
		opacity: 0.875;
	
		width: 100vw;
		margin-left: 0;
	}nav.tc-quickbar .xp-block-dropup {
		background-color: #ffffff;
	}nav.tc-quickbar ul.tc-quickbar-list {
		padding: 3px 0;
	}nav.tc-quickbar li.tc-quickbar-item > a,
	nav.tc-quickbar li.tc-quickbar-item > button {
		padding: 0.35em;
	}nav.tc-quickbar .xp-drop-up {
		width: 100vw;
		min-width: 100vw;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 29.59px;
	}.xp-quickbar-on-pc {
		display: none;
	}}@media print {nav.tc-quickbar {
		display: none;
	}}@media (min-width: 960px) {html .tc-page-container {
		text-align: center;
	}html .tc-story-river {
		position: relative;
		width: 770px;
		padding: 42px;
		margin: 0 auto;
		text-align: left;
	}html .tc-sidebar-scrollable {
		text-align: left;
		left: 50%;
		right: 0;
		margin-left: 343px;
	}
}

</style>
</head>
<body class="tc-body">

<section class="tc-story-river tc-static-story-river">
<a name="单元测试报告">
<div class="tc-tiddler-frame tc-tiddler-view-frame tc-tiddler-exists  tc-tagged-publish%2F%E4%BA%A4%E4%BB%98%E8%B4%A8%E9%87%8F%E4%BC%98%E5%8C%96 tc-tagged-%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E4%BC%98%E5%8C%96 tc-tagged-exported" data-tags="publish/交付质量优化 单元测试优化 exported" data-tiddler-title="单元测试报告" role="article">






  
  <div class="gk0wk-notionpagebg gk0wk-notionpagebg-n">
    <div class="gk0wk-notionbg-addbuttons">
      <button class="" title="Add Icon">😁 Add Icon</button>
      <button class="" title="Add Cover"><svg class="tc-image-picture tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M112 68.233v-48.23A4.001 4.001 0 00107.997 16H20.003A4.001 4.001 0 0016 20.003v38.31l9.241-14.593c2.8-4.422 9.023-5.008 12.6-1.186l18.247 20.613 13.687-6.407a8 8 0 018.903 1.492 264.97 264.97 0 002.92 2.739 249.44 249.44 0 006.798 6.066 166.5 166.5 0 002.106 1.778c2.108 1.747 3.967 3.188 5.482 4.237.748.518 1.383.92 2.044 1.33.444.117 1.046.144 1.809.05 1.873-.233 4.238-1.144 6.723-2.547a36.016 36.016 0 003.205-2.044c.558-.4.93-.686 1.07-.802.376-.31.765-.577 1.165-.806zM0 8.007A8.01 8.01 0 018.007 0h111.986A8.01 8.01 0 01128 8.007v111.986a8.01 8.01 0 01-8.007 8.007H8.007A8.01 8.01 0 010 119.993V8.007zM95 42a8 8 0 100-16 8 8 0 000 16zM32 76c15.859 4.83 20.035 7.244 20.035 12S32 95.471 32 102.347c0 6.876 1.285 4.99 1.285 9.653H68s-13.685-6.625-13.685-10.8c0-7.665 10.615-8.34 10.615-13.2 0-7.357-14.078-8.833-32.93-12z" fill-rule="evenodd"></path></svg> Add Cover</button>
    </div>
  </div>









<div class="tc-tiddler-title"><div class="tc-titlebar"><span class="tc-tiddler-controls"><button aria-expanded="false" aria-label="更多" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fmore-tiddler-actions" title="更多动作"></button><div class=" tc-reveal" hidden="true"></div><button aria-label="favorites" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fkookma%2Ffavorites%2Fui%2Fbuttons%2Fadd-remove" title="Add to favorites">
     
		 

 </button><button aria-label="编辑" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fedit" title="编辑此条目"></button><button aria-label="trashbin" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fkookma%2Ftrashbin%2Fui%2Ftoolbar-button" title="Move this tiddler to Trashbin"> 
































</button><button aria-label="locator sidebar" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fbimlas%2Flocator%2Fviewtemplate%2Fopen-in-sidebar" title="Browse hierarchy of tag in Locator sidebar">



</button>

<button aria-label="关闭" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fclose" title="关闭此条目"></button><button aria-label="tiddlymap" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2FquickConnectButton " title="Toggle TiddlyMap actions"></button></span><span><h2 class="tc-title">单元测试报告</h2></span></div><div class="tc-tiddler-info tc-popup-handle tc-reveal" hidden="true"></div></div><div class=" tc-reveal" hidden="true"></div><div class=" tc-reveal"><div class="tc-subtitle"><a class="tc-tiddlylink tc-tiddlylink-missing" href="#majiajun">majiajun</a> 2022年10月26日 23:08</div></div><div class=" tc-reveal"><div class="tc-tags-wrapper"><span class="tc-tag-list-item" data-tag-title="单元测试优化"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">单元测试优化</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span><span class="tc-tag-list-item" data-tag-title="exported"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">exported</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span><span class="tc-tag-list-item" data-tag-title="publish/交付质量优化"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">publish/交付质量优化</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span></div></div>


<div class="tc-tiddler-body tc-reveal"><h2 class="">单元测试报告分两部分</h2><ol><li>概要测试报告</li><li>代码覆盖率报告</li></ol><p><em>前期可以先完成概要测试报告</em></p><h2 class="">概要测试报告</h2><ol><li>建议使用 Allure 形成可视化单元测试报告，参考 <a class="tc-tiddlylink-external" href="https://qualitysphere.gitee.io/ext/allure/#52-junit-5" rel="noopener noreferrer" target="_blank">Allure</a></li><li>测试报告同代码一起提交</li><li>BA抽查测试报告</li><li>甚至于可以考虑将测试报告作为考评内容之一</li></ol><p><em>参考样例：<a class="tc-tiddlylink-external" href="https://cloud.tencent.com/developer/article/1974146" rel="noopener noreferrer" target="_blank">JUnit 5 集成 Allure 测试报告</a></em></p><h2 class="">代码覆盖率报告</h2><ol><li>建议使用工具 jacoco 工具。可参考 <a class="tc-tiddlylink-external" href="https://howtodoinjava.com/junit5/jacoco-test-coverage/" rel="noopener noreferrer" target="_blank">JaCoCo Code Coverage with Maven</a></li><li>其他流程同概要测试报告</li></ol></div>
<div class=" tc-reveal">

</div><span class=" tc-reveal">



	<label style="margin-left:auto;margin-right:auto;width:fit-content;display:block;">链入</label>


<ul class="horizontal-list-links"><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#%E4%BA%A4%E4%BB%98%E8%B4%A8%E9%87%8F%E4%BC%98%E5%8C%96"><span class="tc-tag-label tc-btn-invisible" style="background-color:;
fill:#333333;
color:#333333;">交付质量优化</span></a></li></ul>



<ul class="horizontal-list-links"></ul>

</span>
</div>
</a><a name="单元测试工具JUnit5">
<div class="tc-tiddler-frame tc-tiddler-view-frame tc-tiddler-exists  tc-tagged-publish%2F%E4%BA%A4%E4%BB%98%E8%B4%A8%E9%87%8F%E4%BC%98%E5%8C%96 tc-tagged-%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E4%BC%98%E5%8C%96 tc-tagged-exported" data-tags="publish/交付质量优化 单元测试优化 exported" data-tiddler-title="单元测试工具JUnit5" role="article">






  
  <div class="gk0wk-notionpagebg gk0wk-notionpagebg-n">
    <div class="gk0wk-notionbg-addbuttons">
      <button class="" title="Add Icon">😁 Add Icon</button>
      <button class="" title="Add Cover"><svg class="tc-image-picture tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M112 68.233v-48.23A4.001 4.001 0 00107.997 16H20.003A4.001 4.001 0 0016 20.003v38.31l9.241-14.593c2.8-4.422 9.023-5.008 12.6-1.186l18.247 20.613 13.687-6.407a8 8 0 018.903 1.492 264.97 264.97 0 002.92 2.739 249.44 249.44 0 006.798 6.066 166.5 166.5 0 002.106 1.778c2.108 1.747 3.967 3.188 5.482 4.237.748.518 1.383.92 2.044 1.33.444.117 1.046.144 1.809.05 1.873-.233 4.238-1.144 6.723-2.547a36.016 36.016 0 003.205-2.044c.558-.4.93-.686 1.07-.802.376-.31.765-.577 1.165-.806zM0 8.007A8.01 8.01 0 018.007 0h111.986A8.01 8.01 0 01128 8.007v111.986a8.01 8.01 0 01-8.007 8.007H8.007A8.01 8.01 0 010 119.993V8.007zM95 42a8 8 0 100-16 8 8 0 000 16zM32 76c15.859 4.83 20.035 7.244 20.035 12S32 95.471 32 102.347c0 6.876 1.285 4.99 1.285 9.653H68s-13.685-6.625-13.685-10.8c0-7.665 10.615-8.34 10.615-13.2 0-7.357-14.078-8.833-32.93-12z" fill-rule="evenodd"></path></svg> Add Cover</button>
    </div>
  </div>









<div class="tc-tiddler-title"><div class="tc-titlebar"><span class="tc-tiddler-controls"><button aria-expanded="false" aria-label="更多" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fmore-tiddler-actions" title="更多动作"></button><div class=" tc-reveal" hidden="true"></div><button aria-label="favorites" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fkookma%2Ffavorites%2Fui%2Fbuttons%2Fadd-remove" title="Add to favorites">
     
		 

 </button><button aria-label="编辑" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fedit" title="编辑此条目"></button><button aria-label="trashbin" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fkookma%2Ftrashbin%2Fui%2Ftoolbar-button" title="Move this tiddler to Trashbin"> 
































</button><button aria-label="locator sidebar" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fbimlas%2Flocator%2Fviewtemplate%2Fopen-in-sidebar" title="Browse hierarchy of tag in Locator sidebar">



</button>

<button aria-label="关闭" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fclose" title="关闭此条目"></button><button aria-label="tiddlymap" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2FquickConnectButton " title="Toggle TiddlyMap actions"></button></span><span><h2 class="tc-title">单元测试工具JUnit5</h2></span></div><div class="tc-tiddler-info tc-popup-handle tc-reveal" hidden="true"></div></div><div class=" tc-reveal" hidden="true"></div><div class=" tc-reveal"><div class="tc-subtitle"><a class="tc-tiddlylink tc-tiddlylink-missing" href="#majiajun">majiajun</a> 2022年10月26日 23:08</div></div><div class=" tc-reveal"><div class="tc-tags-wrapper"><span class="tc-tag-list-item" data-tag-title="单元测试优化"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">单元测试优化</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span><span class="tc-tag-list-item" data-tag-title="exported"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">exported</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span><span class="tc-tag-list-item" data-tag-title="publish/交付质量优化"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">publish/交付质量优化</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span></div></div>


<div class="tc-tiddler-body tc-reveal"><h4 class="">以下为JUnit中文教程：</h4><ul><li><a class="tc-tiddlylink-external" href="https://tonydeng.github.io/2017/10/09/junit-5-tutorial-introduction/" rel="noopener noreferrer" target="_blank">JUnit5教程-简介</a></li><li><a class="tc-tiddlylink-external" href="https://pdai.tech/md/develop/ut/dev-ut-x-junit5.html" rel="noopener noreferrer" target="_blank">单元测试 - Junit5 详解</a></li></ul><h4 class="">以下为官网：</h4><ul><li><a class="tc-tiddlylink-external" href="https://junit.org/junit5/docs/current/user-guide/#overview" rel="noopener noreferrer" target="_blank">JUnit 5 User Guide</a></li></ul></div>
<div class=" tc-reveal">

</div><span class=" tc-reveal">



	<label style="margin-left:auto;margin-right:auto;width:fit-content;display:block;">链入</label>


<ul class="horizontal-list-links"><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#%E4%BA%A4%E4%BB%98%E8%B4%A8%E9%87%8F%E4%BC%98%E5%8C%96"><span class="tc-tag-label tc-btn-invisible" style="background-color:;
fill:#333333;
color:#333333;">交付质量优化</span></a></li></ul>



<ul class="horizontal-list-links"></ul>

</span>
</div>
</a><a name="单元测试流程">
<div class="tc-tiddler-frame tc-tiddler-view-frame tc-tiddler-exists  tc-tagged-publish%2F%E4%BA%A4%E4%BB%98%E8%B4%A8%E9%87%8F%E4%BC%98%E5%8C%96 tc-tagged-%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E4%BC%98%E5%8C%96 tc-tagged-exported" data-tags="publish/交付质量优化 单元测试优化 exported" data-tiddler-title="单元测试流程" role="article">






  
  <div class="gk0wk-notionpagebg gk0wk-notionpagebg-n">
    <div class="gk0wk-notionbg-addbuttons">
      <button class="" title="Add Icon">😁 Add Icon</button>
      <button class="" title="Add Cover"><svg class="tc-image-picture tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M112 68.233v-48.23A4.001 4.001 0 00107.997 16H20.003A4.001 4.001 0 0016 20.003v38.31l9.241-14.593c2.8-4.422 9.023-5.008 12.6-1.186l18.247 20.613 13.687-6.407a8 8 0 018.903 1.492 264.97 264.97 0 002.92 2.739 249.44 249.44 0 006.798 6.066 166.5 166.5 0 002.106 1.778c2.108 1.747 3.967 3.188 5.482 4.237.748.518 1.383.92 2.044 1.33.444.117 1.046.144 1.809.05 1.873-.233 4.238-1.144 6.723-2.547a36.016 36.016 0 003.205-2.044c.558-.4.93-.686 1.07-.802.376-.31.765-.577 1.165-.806zM0 8.007A8.01 8.01 0 018.007 0h111.986A8.01 8.01 0 01128 8.007v111.986a8.01 8.01 0 01-8.007 8.007H8.007A8.01 8.01 0 010 119.993V8.007zM95 42a8 8 0 100-16 8 8 0 000 16zM32 76c15.859 4.83 20.035 7.244 20.035 12S32 95.471 32 102.347c0 6.876 1.285 4.99 1.285 9.653H68s-13.685-6.625-13.685-10.8c0-7.665 10.615-8.34 10.615-13.2 0-7.357-14.078-8.833-32.93-12z" fill-rule="evenodd"></path></svg> Add Cover</button>
    </div>
  </div>









<div class="tc-tiddler-title"><div class="tc-titlebar"><span class="tc-tiddler-controls"><button aria-expanded="false" aria-label="更多" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fmore-tiddler-actions" title="更多动作"></button><div class=" tc-reveal" hidden="true"></div><button aria-label="favorites" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fkookma%2Ffavorites%2Fui%2Fbuttons%2Fadd-remove" title="Add to favorites">
     
		 

 </button><button aria-label="编辑" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fedit" title="编辑此条目"></button><button aria-label="trashbin" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fkookma%2Ftrashbin%2Fui%2Ftoolbar-button" title="Move this tiddler to Trashbin"> 
































</button><button aria-label="locator sidebar" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fbimlas%2Flocator%2Fviewtemplate%2Fopen-in-sidebar" title="Browse hierarchy of tag in Locator sidebar">



</button>

<button aria-label="关闭" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fclose" title="关闭此条目"></button><button aria-label="tiddlymap" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2FquickConnectButton " title="Toggle TiddlyMap actions"></button></span><span><h2 class="tc-title">单元测试流程</h2></span></div><div class="tc-tiddler-info tc-popup-handle tc-reveal" hidden="true"></div></div><div class=" tc-reveal" hidden="true"></div><div class=" tc-reveal"><div class="tc-subtitle"><a class="tc-tiddlylink tc-tiddlylink-missing" href="#majiajun">majiajun</a> 2022年10月26日 23:08</div></div><div class=" tc-reveal"><div class="tc-tags-wrapper"><span class="tc-tag-list-item" data-tag-title="单元测试优化"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">单元测试优化</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span><span class="tc-tag-list-item" data-tag-title="exported"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">exported</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span><span class="tc-tag-list-item" data-tag-title="publish/交付质量优化"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">publish/交付质量优化</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span></div></div>


<div class="tc-tiddler-body tc-reveal"><p><img class=" tc-image-loading" src=""></p></div>
<div class=" tc-reveal">

</div><span class=" tc-reveal">



	<label style="margin-left:auto;margin-right:auto;width:fit-content;display:block;">链入</label>


<ul class="horizontal-list-links"><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#%E4%BA%A4%E4%BB%98%E8%B4%A8%E9%87%8F%E4%BC%98%E5%8C%96"><span class="tc-tag-label tc-btn-invisible" style="background-color:;
fill:#333333;
color:#333333;">交付质量优化</span></a></li></ul>



<ul class="horizontal-list-links"></ul>

</span>
</div>
</a><a name="单元测试优化">
<div class="tc-tiddler-frame tc-tiddler-view-frame tc-tiddler-exists  tc-tagged-%E4%BA%A4%E4%BB%98%E8%B4%A8%E9%87%8F%E4%BC%98%E5%8C%96 tc-tagged-publish%2F%E4%BA%A4%E4%BB%98%E8%B4%A8%E9%87%8F%E4%BC%98%E5%8C%96 tc-tagged-exported" data-tags="交付质量优化 publish/交付质量优化 exported" data-tiddler-title="单元测试优化" role="article">






  
  <div class="gk0wk-notionpagebg gk0wk-notionpagebg-n">
    <div class="gk0wk-notionbg-addbuttons">
      <button class="" title="Add Icon">😁 Add Icon</button>
      <button class="" title="Add Cover"><svg class="tc-image-picture tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M112 68.233v-48.23A4.001 4.001 0 00107.997 16H20.003A4.001 4.001 0 0016 20.003v38.31l9.241-14.593c2.8-4.422 9.023-5.008 12.6-1.186l18.247 20.613 13.687-6.407a8 8 0 018.903 1.492 264.97 264.97 0 002.92 2.739 249.44 249.44 0 006.798 6.066 166.5 166.5 0 002.106 1.778c2.108 1.747 3.967 3.188 5.482 4.237.748.518 1.383.92 2.044 1.33.444.117 1.046.144 1.809.05 1.873-.233 4.238-1.144 6.723-2.547a36.016 36.016 0 003.205-2.044c.558-.4.93-.686 1.07-.802.376-.31.765-.577 1.165-.806zM0 8.007A8.01 8.01 0 018.007 0h111.986A8.01 8.01 0 01128 8.007v111.986a8.01 8.01 0 01-8.007 8.007H8.007A8.01 8.01 0 010 119.993V8.007zM95 42a8 8 0 100-16 8 8 0 000 16zM32 76c15.859 4.83 20.035 7.244 20.035 12S32 95.471 32 102.347c0 6.876 1.285 4.99 1.285 9.653H68s-13.685-6.625-13.685-10.8c0-7.665 10.615-8.34 10.615-13.2 0-7.357-14.078-8.833-32.93-12z" fill-rule="evenodd"></path></svg> Add Cover</button>
    </div>
  </div>









<div class="tc-tiddler-title"><div class="tc-titlebar"><span class="tc-tiddler-controls"><button aria-expanded="false" aria-label="更多" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fmore-tiddler-actions" title="更多动作"></button><div class=" tc-reveal" hidden="true"></div><button aria-label="favorites" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fkookma%2Ffavorites%2Fui%2Fbuttons%2Fadd-remove" title="Add to favorites">
     
		 

 </button><button aria-label="编辑" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fedit" title="编辑此条目"></button><button aria-label="trashbin" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fkookma%2Ftrashbin%2Fui%2Ftoolbar-button" title="Move this tiddler to Trashbin"> 
































</button><button aria-label="locator sidebar" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fbimlas%2Flocator%2Fviewtemplate%2Fopen-in-sidebar" title="Browse hierarchy of tag in Locator sidebar">



</button>

<button aria-label="关闭" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fclose" title="关闭此条目"></button><button aria-label="tiddlymap" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2FquickConnectButton " title="Toggle TiddlyMap actions"></button></span><span><h2 class="tc-title">单元测试优化</h2></span></div><div class="tc-tiddler-info tc-popup-handle tc-reveal" hidden="true"></div></div><div class=" tc-reveal" hidden="true"></div><div class=" tc-reveal"><div class="tc-subtitle"><a class="tc-tiddlylink tc-tiddlylink-missing" href="#majiajun">majiajun</a> 2022年10月26日 23:08</div></div><div class=" tc-reveal"><div class="tc-tags-wrapper"><span class="tc-tag-list-item" data-tag-title="交付质量优化"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">交付质量优化</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span><span class="tc-tag-list-item" data-tag-title="exported"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">exported</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span><span class="tc-tag-list-item" data-tag-title="publish/交付质量优化"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">publish/交付质量优化</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span></div></div>


<div class="tc-tiddler-body tc-reveal"></div>
<div class=" tc-reveal">

</div><span class=" tc-reveal">



	<label style="margin-left:auto;margin-right:auto;width:fit-content;display:block;">链入</label>


<ul class="horizontal-list-links"><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#%E4%BA%A4%E4%BB%98%E8%B4%A8%E9%87%8F%E4%BC%98%E5%8C%96"><span class="tc-tag-label tc-btn-invisible" style="background-color:;
fill:#333333;
color:#333333;">交付质量优化</span></a></li></ul>


	<label style="margin-left:auto;margin-right:auto;width:fit-content;display:block;">此文件夹中的文件</label>


<ul class="horizontal-list-links"><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E6%8A%A5%E5%91%8A"><span class="tc-tag-label tc-btn-invisible" style="background-color:;
fill:#333333;
color:#333333;">单元测试报告</span></a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7JUnit5"><span class="tc-tag-label tc-btn-invisible" style="background-color:;
fill:#333333;
color:#333333;">单元测试工具JUnit5</span></a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E6%B5%81%E7%A8%8B"><span class="tc-tag-label tc-btn-invisible" style="background-color:;
fill:#333333;
color:#333333;">单元测试流程</span></a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#JUnit%E4%BD%BF%E7%94%A8%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9"><span class="tc-tag-label tc-btn-invisible" style="background-color:;
fill:#333333;
color:#333333;">JUnit使用注意事项</span></a></li></ul>

</span>
</div>
</a><a name="交付质量优化">
<div class="tc-tiddler-frame tc-tiddler-view-frame tc-tiddler-exists  tc-tagged-TableOfContents tc-tagged-%E7%94%A8%E5%8F%8B tc-tagged-publish%2F%E4%BA%A4%E4%BB%98%E8%B4%A8%E9%87%8F%E4%BC%98%E5%8C%96 tc-tagged-exported" data-tags="TableOfContents 用友 publish/交付质量优化 exported" data-tiddler-title="交付质量优化" role="article">






  
  <div class="gk0wk-notionpagebg gk0wk-notionpagebg-n">
    <div class="gk0wk-notionbg-addbuttons">
      <button class="" title="Add Icon">😁 Add Icon</button>
      <button class="" title="Add Cover"><svg class="tc-image-picture tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M112 68.233v-48.23A4.001 4.001 0 00107.997 16H20.003A4.001 4.001 0 0016 20.003v38.31l9.241-14.593c2.8-4.422 9.023-5.008 12.6-1.186l18.247 20.613 13.687-6.407a8 8 0 018.903 1.492 264.97 264.97 0 002.92 2.739 249.44 249.44 0 006.798 6.066 166.5 166.5 0 002.106 1.778c2.108 1.747 3.967 3.188 5.482 4.237.748.518 1.383.92 2.044 1.33.444.117 1.046.144 1.809.05 1.873-.233 4.238-1.144 6.723-2.547a36.016 36.016 0 003.205-2.044c.558-.4.93-.686 1.07-.802.376-.31.765-.577 1.165-.806zM0 8.007A8.01 8.01 0 018.007 0h111.986A8.01 8.01 0 01128 8.007v111.986a8.01 8.01 0 01-8.007 8.007H8.007A8.01 8.01 0 010 119.993V8.007zM95 42a8 8 0 100-16 8 8 0 000 16zM32 76c15.859 4.83 20.035 7.244 20.035 12S32 95.471 32 102.347c0 6.876 1.285 4.99 1.285 9.653H68s-13.685-6.625-13.685-10.8c0-7.665 10.615-8.34 10.615-13.2 0-7.357-14.078-8.833-32.93-12z" fill-rule="evenodd"></path></svg> Add Cover</button>
    </div>
  </div>









<div class="tc-tiddler-title"><div class="tc-titlebar"><span class="tc-tiddler-controls"><button aria-expanded="false" aria-label="更多" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fmore-tiddler-actions" title="更多动作"></button><div class=" tc-reveal" hidden="true"></div><button aria-label="favorites" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fkookma%2Ffavorites%2Fui%2Fbuttons%2Fadd-remove" title="Add to favorites">
     
		 

 </button><button aria-label="编辑" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fedit" title="编辑此条目"></button><button aria-label="trashbin" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fkookma%2Ftrashbin%2Fui%2Ftoolbar-button" title="Move this tiddler to Trashbin"> 
































</button><button aria-label="locator sidebar" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fbimlas%2Flocator%2Fviewtemplate%2Fopen-in-sidebar" title="Browse hierarchy of tag in Locator sidebar">



</button>

<button aria-label="关闭" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fclose" title="关闭此条目"></button><button aria-label="tiddlymap" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2FquickConnectButton " title="Toggle TiddlyMap actions"></button></span><span><h2 class="tc-title">交付质量优化</h2></span></div><div class="tc-tiddler-info tc-popup-handle tc-reveal" hidden="true"></div></div><div class=" tc-reveal" hidden="true"></div><div class=" tc-reveal"><div class="tc-subtitle"><a class="tc-tiddlylink tc-tiddlylink-missing" href="#majiajun">majiajun</a> 2022年10月26日 23:08</div></div><div class=" tc-reveal"><div class="tc-tags-wrapper"><span class="tc-tag-list-item" data-tag-title="用友"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">用友</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span><span class="tc-tag-list-item" data-tag-title="exported"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">exported</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span><span class="tc-tag-list-item" data-tag-title="publish/交付质量优化"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">publish/交付质量优化</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span><span class="tc-tag-list-item" data-tag-title="TableOfContents"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">TableOfContents</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span></div></div>


<div class="tc-tiddler-body tc-reveal"><h1 class="">交付质量提升优化</h1><ul><li>需求管理优化</li><li>代码质量优化<ul><li>代码管理规范</li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E4%BC%98%E5%8C%96">单元测试优化</a><ul><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7JUnit5">单元测试工具JUnit5</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E6%B5%81%E7%A8%8B">单元测试流程</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#JUnit%E4%BD%BF%E7%94%A8%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9">JUnit使用注意事项</a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E6%8A%A5%E5%91%8A">单元测试报告</a></li></ul></li></ul></li><li>测试质量优化</li><li>安全方面优化</li><li>持续跟踪优化</li><li>考核内容调整（如有必要）</li></ul></div>
<div class=" tc-reveal">

</div><span class=" tc-reveal">




<ul class="horizontal-list-links"></ul>


	<label style="margin-left:auto;margin-right:auto;width:fit-content;display:block;">此文件夹中的文件</label>


<ul class="horizontal-list-links"><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E4%BC%98%E5%8C%96"><span class="tc-tag-label tc-btn-invisible" style="background-color:;
fill:#333333;
color:#333333;">单元测试优化</span></a></li></ul>

</span>
</div>
</a><a name="JUnit5常用断言">
<div class="tc-tiddler-frame tc-tiddler-view-frame tc-tiddler-exists  tc-tagged-JUnit%E4%BD%BF%E7%94%A8%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9 tc-tagged-publish%2F%E4%BA%A4%E4%BB%98%E8%B4%A8%E9%87%8F%E4%BC%98%E5%8C%96 tc-tagged-exported" data-tags="JUnit使用注意事项 publish/交付质量优化 exported" data-tiddler-title="JUnit5常用断言" role="article">






  
  <div class="gk0wk-notionpagebg gk0wk-notionpagebg-n">
    <div class="gk0wk-notionbg-addbuttons">
      <button class="" title="Add Icon">😁 Add Icon</button>
      <button class="" title="Add Cover"><svg class="tc-image-picture tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M112 68.233v-48.23A4.001 4.001 0 00107.997 16H20.003A4.001 4.001 0 0016 20.003v38.31l9.241-14.593c2.8-4.422 9.023-5.008 12.6-1.186l18.247 20.613 13.687-6.407a8 8 0 018.903 1.492 264.97 264.97 0 002.92 2.739 249.44 249.44 0 006.798 6.066 166.5 166.5 0 002.106 1.778c2.108 1.747 3.967 3.188 5.482 4.237.748.518 1.383.92 2.044 1.33.444.117 1.046.144 1.809.05 1.873-.233 4.238-1.144 6.723-2.547a36.016 36.016 0 003.205-2.044c.558-.4.93-.686 1.07-.802.376-.31.765-.577 1.165-.806zM0 8.007A8.01 8.01 0 018.007 0h111.986A8.01 8.01 0 01128 8.007v111.986a8.01 8.01 0 01-8.007 8.007H8.007A8.01 8.01 0 010 119.993V8.007zM95 42a8 8 0 100-16 8 8 0 000 16zM32 76c15.859 4.83 20.035 7.244 20.035 12S32 95.471 32 102.347c0 6.876 1.285 4.99 1.285 9.653H68s-13.685-6.625-13.685-10.8c0-7.665 10.615-8.34 10.615-13.2 0-7.357-14.078-8.833-32.93-12z" fill-rule="evenodd"></path></svg> Add Cover</button>
    </div>
  </div>









<div class="tc-tiddler-title"><div class="tc-titlebar"><span class="tc-tiddler-controls"><button aria-expanded="false" aria-label="更多" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fmore-tiddler-actions" title="更多动作"></button><div class=" tc-reveal" hidden="true"></div><button aria-label="favorites" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fkookma%2Ffavorites%2Fui%2Fbuttons%2Fadd-remove" title="Add to favorites">
     
		 

 </button><button aria-label="编辑" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fedit" title="编辑此条目"></button><button aria-label="trashbin" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fkookma%2Ftrashbin%2Fui%2Ftoolbar-button" title="Move this tiddler to Trashbin"> 
































</button><button aria-label="locator sidebar" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fbimlas%2Flocator%2Fviewtemplate%2Fopen-in-sidebar" title="Browse hierarchy of tag in Locator sidebar">



</button>

<button aria-label="关闭" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fclose" title="关闭此条目"></button><button aria-label="tiddlymap" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2FquickConnectButton " title="Toggle TiddlyMap actions"></button></span><span><h2 class="tc-title">JUnit5常用断言</h2></span></div><div class="tc-tiddler-info tc-popup-handle tc-reveal" hidden="true"></div></div><div class=" tc-reveal" hidden="true"></div><div class=" tc-reveal"><div class="tc-subtitle"><a class="tc-tiddlylink tc-tiddlylink-missing" href="#majiajun">majiajun</a> 2022年10月26日 23:08</div></div><div class=" tc-reveal"><div class="tc-tags-wrapper"><span class="tc-tag-list-item" data-tag-title="exported"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">exported</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span><span class="tc-tag-list-item" data-tag-title="JUnit使用注意事项"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">JUnit使用注意事项</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span><span class="tc-tag-list-item" data-tag-title="publish/交付质量优化"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">publish/交付质量优化</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span></div></div>


<div class="tc-tiddler-body tc-reveal"><p><table id="yR1sf"><tbody><tr><td><p id="u98180bd6"><strong><span>断言</span></strong></p></td><td><p id="u4ca94c32"><strong><span>描述</span></strong></p></td></tr><tr><td><p id="u8f8d52b8"><span>assertAll</span></p></td><td><p id="u2366ccd5"><span>分组断言，执行其中包含的所有断言</span></p></td></tr><tr><td><p id="u317d2c9d"><span>assertEquals</span></p></td><td><p id="u771ddd8c"><span>判断断言预期值和实际值是否相等</span></p></td></tr><tr><td><p id="ub526c3c7"><span>assertNotEquals</span></p></td><td><p id="u060f8d1d"><span>判断断言预期值和实际值是否不相等</span></p></td></tr><tr><td><p id="u483c812a"><span>assertArrayEquals</span></p></td><td><p id="u422a1a2c"><span>判断断言预期数组和实际数组相等</span></p></td></tr><tr><td><p id="u32a3369b"><span>assertTrue</span></p></td><td><p id="u112df6f1"><span>判断断言条件是否为真</span></p></td></tr><tr><td><p id="u95391c18"><span>assertFalse</span></p></td><td><p id="ua7eaa6d8"><span>判断断言条件是否为假</span></p></td></tr><tr><td><p id="u7a8810af"><span>assertNull</span></p></td><td><p id="u8aa4baa8"><span>判断断言条件是否为空</span></p></td></tr><tr><td><p id="u98a679a7"><span>assertNotNull</span></p></td><td><p id="u92fcb9f2"><span>判断断言条件是否不为空</span></p></td></tr><tr><td><p id="u394f28b4"><span>assertSame</span></p></td><td><p id="u145050c2"><span>判断两个对象引用是否指向同一个对象</span></p></td></tr><tr><td><p id="u1c7992db"><span>assertTimeout</span></p></td><td><p id="uf7a9f67d"><span>断言超时</span></p></td></tr><tr><td><p id="ueccaf456"><span>fail</span></p></td><td><p id="u1cf879a1"><span>使单元测试失败</span></p></td></tr></tbody></table></p></div>
<div class=" tc-reveal">

</div><span class=" tc-reveal">



	<label style="margin-left:auto;margin-right:auto;width:fit-content;display:block;">链入</label>


<ul class="horizontal-list-links"><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#JUnit%E4%BD%BF%E7%94%A8%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9"><span class="tc-tag-label tc-btn-invisible" style="background-color:;
fill:#333333;
color:#333333;">JUnit使用注意事项</span></a></li></ul>



<ul class="horizontal-list-links"></ul>

</span>
</div>
</a><a name="JUnit5常用注释">
<div class="tc-tiddler-frame tc-tiddler-view-frame tc-tiddler-exists  tc-tagged-JUnit%E4%BD%BF%E7%94%A8%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9 tc-tagged-publish%2F%E4%BA%A4%E4%BB%98%E8%B4%A8%E9%87%8F%E4%BC%98%E5%8C%96 tc-tagged-exported" data-tags="JUnit使用注意事项 publish/交付质量优化 exported" data-tiddler-title="JUnit5常用注释" role="article">






  
  <div class="gk0wk-notionpagebg gk0wk-notionpagebg-n">
    <div class="gk0wk-notionbg-addbuttons">
      <button class="" title="Add Icon">😁 Add Icon</button>
      <button class="" title="Add Cover"><svg class="tc-image-picture tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M112 68.233v-48.23A4.001 4.001 0 00107.997 16H20.003A4.001 4.001 0 0016 20.003v38.31l9.241-14.593c2.8-4.422 9.023-5.008 12.6-1.186l18.247 20.613 13.687-6.407a8 8 0 018.903 1.492 264.97 264.97 0 002.92 2.739 249.44 249.44 0 006.798 6.066 166.5 166.5 0 002.106 1.778c2.108 1.747 3.967 3.188 5.482 4.237.748.518 1.383.92 2.044 1.33.444.117 1.046.144 1.809.05 1.873-.233 4.238-1.144 6.723-2.547a36.016 36.016 0 003.205-2.044c.558-.4.93-.686 1.07-.802.376-.31.765-.577 1.165-.806zM0 8.007A8.01 8.01 0 018.007 0h111.986A8.01 8.01 0 01128 8.007v111.986a8.01 8.01 0 01-8.007 8.007H8.007A8.01 8.01 0 010 119.993V8.007zM95 42a8 8 0 100-16 8 8 0 000 16zM32 76c15.859 4.83 20.035 7.244 20.035 12S32 95.471 32 102.347c0 6.876 1.285 4.99 1.285 9.653H68s-13.685-6.625-13.685-10.8c0-7.665 10.615-8.34 10.615-13.2 0-7.357-14.078-8.833-32.93-12z" fill-rule="evenodd"></path></svg> Add Cover</button>
    </div>
  </div>









<div class="tc-tiddler-title"><div class="tc-titlebar"><span class="tc-tiddler-controls"><button aria-expanded="false" aria-label="更多" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fmore-tiddler-actions" title="更多动作"></button><div class=" tc-reveal" hidden="true"></div><button aria-label="favorites" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fkookma%2Ffavorites%2Fui%2Fbuttons%2Fadd-remove" title="Add to favorites">
     
		 

 </button><button aria-label="编辑" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fedit" title="编辑此条目"></button><button aria-label="trashbin" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fkookma%2Ftrashbin%2Fui%2Ftoolbar-button" title="Move this tiddler to Trashbin"> 
































</button><button aria-label="locator sidebar" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fbimlas%2Flocator%2Fviewtemplate%2Fopen-in-sidebar" title="Browse hierarchy of tag in Locator sidebar">



</button>

<button aria-label="关闭" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fclose" title="关闭此条目"></button><button aria-label="tiddlymap" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2FquickConnectButton " title="Toggle TiddlyMap actions"></button></span><span><h2 class="tc-title">JUnit5常用注释</h2></span></div><div class="tc-tiddler-info tc-popup-handle tc-reveal" hidden="true"></div></div><div class=" tc-reveal" hidden="true"></div><div class=" tc-reveal"><div class="tc-subtitle"><a class="tc-tiddlylink tc-tiddlylink-missing" href="#majiajun">majiajun</a> 2022年10月26日 23:08</div></div><div class=" tc-reveal"><div class="tc-tags-wrapper"><span class="tc-tag-list-item" data-tag-title="exported"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">exported</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span><span class="tc-tag-list-item" data-tag-title="JUnit使用注意事项"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">JUnit使用注意事项</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span><span class="tc-tag-list-item" data-tag-title="publish/交付质量优化"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">publish/交付质量优化</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span></div></div>


<div class="tc-tiddler-body tc-reveal"><p><table id="cqtlB"><tbody><tr><td><p id="u0c281092"><strong><span>注解</span></strong></p></td><td><p id="u5d999114"><strong><span>描述</span></strong></p></td></tr><tr><td><p id="u55057081"><span>@Test</span></p></td><td><p id="u4811e3f9"><span>表示方法是一种测试方法。与 JUnit 4 的@Test 注解不同，此注释不会声明任何属性</span></p></td></tr><tr><td><p id="u9554be3c"><span>@<a class="tc-tiddlylink tc-tiddlylink-missing" href="#ParameterizedTest">ParameterizedTest</a></span></p></td><td><p id="u5f67df3b"><span>表示方法是参数化测试</span></p></td></tr><tr><td><p id="ubbeb6a03"><span>@<a class="tc-tiddlylink tc-tiddlylink-missing" href="#RepeatedTest">RepeatedTest</a></span></p></td><td><p id="u4bc190a0"><span>表示方法是重复测试模板</span></p></td></tr><tr><td><p id="u2db2677b"><span>@<a class="tc-tiddlylink tc-tiddlylink-missing" href="#TestFactory">TestFactory</a></span></p></td><td><p id="ud0fde8a2"><span>表示方法是动态测试的测试工程</span></p></td></tr><tr><td><p id="u8cc3d081"><span>@<a class="tc-tiddlylink tc-tiddlylink-missing" href="#TestInstance">TestInstance</a></span></p></td><td><p id="ucf212ea6"><span>用于配置测试实例生命周期</span></p></td></tr><tr><td><p id="u6bb3b722"><span>@<a class="tc-tiddlylink tc-tiddlylink-missing" href="#TestTemplate">TestTemplate</a></span></p></td><td><p id="u89f5b661"><span>表示方法是为多次调用的测试用例的模板</span></p></td></tr><tr><td><p id="uefaf26b0"><span>@<a class="tc-tiddlylink tc-tiddlylink-missing" href="#DisplayName">DisplayName</a></span></p></td><td><p id="ua103a54e"><span>为测试类或者测试方法自定义一个名称</span></p></td></tr><tr><td><p id="u206b77a7"><span>@<a class="tc-tiddlylink tc-tiddlylink-missing" href="#BeforeEach">BeforeEach</a></span></p></td><td><p id="u5004e892"><span>表示方法在每个测试方法运行前都会运行</span></p></td></tr><tr><td><p id="u63e290fa"><span>@<a class="tc-tiddlylink tc-tiddlylink-missing" href="#AfterEach">AfterEach</a></span></p></td><td><p id="u538dac3b"><span>表示方法在每个测试方法运行之后都会运行</span></p></td></tr><tr><td><p id="u1515be91"><span>@<a class="tc-tiddlylink tc-tiddlylink-missing" href="#BeforeAll">BeforeAll</a></span></p></td><td><p id="uf5e8f723"><span>表示方法在所有测试方法之前运行，注意使用该注解的方法</span><strong><span>必须返回 void</span></strong><span>、访问级别</span><strong><span>不允许为 private</span></strong><span>，且必须声明为</span><strong><span>静态 (static) 方法</span></strong></p></td></tr><tr><td><p id="u425d0de8"><span>@<a class="tc-tiddlylink tc-tiddlylink-missing" href="#AfterAll">AfterAll</a></span></p></td><td><p id="ub4c366df"><span>表示方法在所有测试方法之后运行，而且该注解的使用限制与</span> <span>@<a class="tc-tiddlylink tc-tiddlylink-missing" href="#BeforeAll">BeforeAll</a></span> <span>一致</span></p></td></tr><tr><td><p id="u4e5238d3"><span>@Nested</span></p></td><td><p id="u192a88d5"><span>表示带注解的类是嵌套的非静态测试类，@<a class="tc-tiddlylink tc-tiddlylink-missing" href="#BeforeAll">BeforeAll</a> 和 @<a class="tc-tiddlylink tc-tiddlylink-missing" href="#AfterAll">AfterAll</a> 方法不能直接在 @Nested 测试类中使用，除非修改测试实例生命周期</span></p></td></tr><tr><td><p id="ud02cd29d"><span>@Tag</span></p></td><td><p id="u24c80f12"><span>用于在类或方法级别声明用于过滤测试的标记</span></p></td></tr><tr><td><p id="ub11c55bb"><span>@Disabled</span></p></td><td><p id="u830bea66"><span>用于禁用测试类或测试方法</span></p></td></tr><tr><td><p id="u5e56bce6"><span>@<a class="tc-tiddlylink tc-tiddlylink-missing" href="#ExtendWith">ExtendWith</a></span></p></td><td><p id="ubcd9fe07"><span>用于注册自定义扩展，该注解可以继承</span></p></td></tr></tbody></table>
</p></div>
<div class=" tc-reveal">

</div><span class=" tc-reveal">



	<label style="margin-left:auto;margin-right:auto;width:fit-content;display:block;">链入</label>


<ul class="horizontal-list-links"><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#JUnit%E4%BD%BF%E7%94%A8%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9"><span class="tc-tag-label tc-btn-invisible" style="background-color:;
fill:#333333;
color:#333333;">JUnit使用注意事项</span></a></li></ul>



<ul class="horizontal-list-links"></ul>

</span>
</div>
</a><a name="JUnit的编码规范">
<div class="tc-tiddler-frame tc-tiddler-view-frame tc-tiddler-exists  tc-tagged-publish%2F%E4%BA%A4%E4%BB%98%E8%B4%A8%E9%87%8F%E4%BC%98%E5%8C%96 tc-tagged-JUnit%E4%BD%BF%E7%94%A8%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9 tc-tagged-exported" data-tags="publish/交付质量优化 JUnit使用注意事项 exported" data-tiddler-title="JUnit的编码规范" role="article">






  
  <div class="gk0wk-notionpagebg gk0wk-notionpagebg-n">
    <div class="gk0wk-notionbg-addbuttons">
      <button class="" title="Add Icon">😁 Add Icon</button>
      <button class="" title="Add Cover"><svg class="tc-image-picture tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M112 68.233v-48.23A4.001 4.001 0 00107.997 16H20.003A4.001 4.001 0 0016 20.003v38.31l9.241-14.593c2.8-4.422 9.023-5.008 12.6-1.186l18.247 20.613 13.687-6.407a8 8 0 018.903 1.492 264.97 264.97 0 002.92 2.739 249.44 249.44 0 006.798 6.066 166.5 166.5 0 002.106 1.778c2.108 1.747 3.967 3.188 5.482 4.237.748.518 1.383.92 2.044 1.33.444.117 1.046.144 1.809.05 1.873-.233 4.238-1.144 6.723-2.547a36.016 36.016 0 003.205-2.044c.558-.4.93-.686 1.07-.802.376-.31.765-.577 1.165-.806zM0 8.007A8.01 8.01 0 018.007 0h111.986A8.01 8.01 0 01128 8.007v111.986a8.01 8.01 0 01-8.007 8.007H8.007A8.01 8.01 0 010 119.993V8.007zM95 42a8 8 0 100-16 8 8 0 000 16zM32 76c15.859 4.83 20.035 7.244 20.035 12S32 95.471 32 102.347c0 6.876 1.285 4.99 1.285 9.653H68s-13.685-6.625-13.685-10.8c0-7.665 10.615-8.34 10.615-13.2 0-7.357-14.078-8.833-32.93-12z" fill-rule="evenodd"></path></svg> Add Cover</button>
    </div>
  </div>









<div class="tc-tiddler-title"><div class="tc-titlebar"><span class="tc-tiddler-controls"><button aria-expanded="false" aria-label="更多" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fmore-tiddler-actions" title="更多动作"></button><div class=" tc-reveal" hidden="true"></div><button aria-label="favorites" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fkookma%2Ffavorites%2Fui%2Fbuttons%2Fadd-remove" title="Add to favorites">
     
		 

 </button><button aria-label="编辑" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fedit" title="编辑此条目"></button><button aria-label="trashbin" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fkookma%2Ftrashbin%2Fui%2Ftoolbar-button" title="Move this tiddler to Trashbin"> 
































</button><button aria-label="locator sidebar" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fbimlas%2Flocator%2Fviewtemplate%2Fopen-in-sidebar" title="Browse hierarchy of tag in Locator sidebar">



</button>

<button aria-label="关闭" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fclose" title="关闭此条目"></button><button aria-label="tiddlymap" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2FquickConnectButton " title="Toggle TiddlyMap actions"></button></span><span><h2 class="tc-title">JUnit的编码规范</h2></span></div><div class="tc-tiddler-info tc-popup-handle tc-reveal" hidden="true"></div></div><div class=" tc-reveal" hidden="true"></div><div class=" tc-reveal"><div class="tc-subtitle"><a class="tc-tiddlylink tc-tiddlylink-missing" href="#majiajun">majiajun</a> 2022年10月26日 23:08</div></div><div class=" tc-reveal"><div class="tc-tags-wrapper"><span class="tc-tag-list-item" data-tag-title="exported"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">exported</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span><span class="tc-tag-list-item" data-tag-title="JUnit使用注意事项"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">JUnit使用注意事项</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span><span class="tc-tag-list-item" data-tag-title="publish/交付质量优化"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">publish/交付质量优化</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span></div></div>


<div class="tc-tiddler-body tc-reveal"><h3 class="">类名 ：</h3><p>定义测试类，类名是由被测试类名 Test 构成。例如：CalculatorTest</p><h3 class="">包名：</h3><p>定义的测试类需要放在 xxx.xxx.xxx.test 包中。例如：package com.mylifes1110.test;</p><h3 class="">方法名：</h3><p>测试方法的方法名有两种定义方式 test 测试方法和测试方法。例如：testAdd 和 add</p><h3 class="">返回值：</h3><p>因为我们的方法只是在类中测试，可以独立运行，所以不需要处理任何返回值，所以这里使用 void。例如：public void add();</p><h3 class="">参数列表：</h3><p>因为我们的方法是用来测试的，至于参数列表的传入是没有必要的。我们在测试的时候自行传入需要的参数测试即可。所以在此参数列表为空。例如：例如：public void add();</p><h3 class="">@Test 注解：</h3><p>测试是需要运行来完成的。如果我们只有一个 main 方法，显然在结构上还是需要我们去注释掉测试过的。解决此问题这里我们需要在测试方法上方加@Test 注解来完成测试，只要是加该注解的方法，可以单独运行此方法来完成测试。</p><h3 class="">@Test 注解 jar 包 Junit4、5：</h3><p>@Test 注解是需要我们导入 jar 包才能使用的。jar 包有两个分别是：junit-4.13-rc-2 和 hamcrest-core-1.3。这里我使用的是 Junit4，单元测试还有 Junit5，版本差异我没有做了解。主要是可以完成测试才是硬道理！</p><h3 class="">IDEA 快捷导入 Junit4、5：</h3><p>我们可以先创建测试类和方法，然后在测试方法上方加入@Test 注解，此时 IDEA 显示的@Test 注解是飘红的，这时候我们使用 Alt + Enter 组合键来打开导入 Junit 单元测试列表，然后再选择 Junit4 或者 Junit5 确定即可导入成功！这时候再查看注解就没有飘红了！
</p></div>
<div class=" tc-reveal">

</div><span class=" tc-reveal">



	<label style="margin-left:auto;margin-right:auto;width:fit-content;display:block;">链入</label>


<ul class="horizontal-list-links"><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#JUnit%E4%BD%BF%E7%94%A8%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9"><span class="tc-tag-label tc-btn-invisible" style="background-color:;
fill:#333333;
color:#333333;">JUnit使用注意事项</span></a></li></ul>



<ul class="horizontal-list-links"></ul>

</span>
</div>
</a><a name="JUnit使用注意事项">
<div class="tc-tiddler-frame tc-tiddler-view-frame tc-tiddler-exists  tc-tagged-publish%2F%E4%BA%A4%E4%BB%98%E8%B4%A8%E9%87%8F%E4%BC%98%E5%8C%96 tc-tagged-%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95%E4%BC%98%E5%8C%96 tc-tagged-exported" data-tags="publish/交付质量优化 单元测试优化 exported" data-tiddler-title="JUnit使用注意事项" role="article">






  
  <div class="gk0wk-notionpagebg gk0wk-notionpagebg-n">
    <div class="gk0wk-notionbg-addbuttons">
      <button class="" title="Add Icon">😁 Add Icon</button>
      <button class="" title="Add Cover"><svg class="tc-image-picture tc-image-button" height="22pt" viewBox="0 0 128 128" width="22pt"><path d="M112 68.233v-48.23A4.001 4.001 0 00107.997 16H20.003A4.001 4.001 0 0016 20.003v38.31l9.241-14.593c2.8-4.422 9.023-5.008 12.6-1.186l18.247 20.613 13.687-6.407a8 8 0 018.903 1.492 264.97 264.97 0 002.92 2.739 249.44 249.44 0 006.798 6.066 166.5 166.5 0 002.106 1.778c2.108 1.747 3.967 3.188 5.482 4.237.748.518 1.383.92 2.044 1.33.444.117 1.046.144 1.809.05 1.873-.233 4.238-1.144 6.723-2.547a36.016 36.016 0 003.205-2.044c.558-.4.93-.686 1.07-.802.376-.31.765-.577 1.165-.806zM0 8.007A8.01 8.01 0 018.007 0h111.986A8.01 8.01 0 01128 8.007v111.986a8.01 8.01 0 01-8.007 8.007H8.007A8.01 8.01 0 010 119.993V8.007zM95 42a8 8 0 100-16 8 8 0 000 16zM32 76c15.859 4.83 20.035 7.244 20.035 12S32 95.471 32 102.347c0 6.876 1.285 4.99 1.285 9.653H68s-13.685-6.625-13.685-10.8c0-7.665 10.615-8.34 10.615-13.2 0-7.357-14.078-8.833-32.93-12z" fill-rule="evenodd"></path></svg> Add Cover</button>
    </div>
  </div>









<div class="tc-tiddler-title"><div class="tc-titlebar"><span class="tc-tiddler-controls"><button aria-expanded="false" aria-label="更多" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fmore-tiddler-actions" title="更多动作"></button><div class=" tc-reveal" hidden="true"></div><button aria-label="favorites" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fkookma%2Ffavorites%2Fui%2Fbuttons%2Fadd-remove" title="Add to favorites">
     
		 

 </button><button aria-label="编辑" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fedit" title="编辑此条目"></button><button aria-label="trashbin" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fkookma%2Ftrashbin%2Fui%2Ftoolbar-button" title="Move this tiddler to Trashbin"> 
































</button><button aria-label="locator sidebar" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Fbimlas%2Flocator%2Fviewtemplate%2Fopen-in-sidebar" title="Browse hierarchy of tag in Locator sidebar">



</button>

<button aria-label="关闭" class="tc-btn-invisible tc-btn-%24%3A%2Fcore%2Fui%2FButtons%2Fclose" title="关闭此条目"></button><button aria-label="tiddlymap" class="tc-btn-invisible tc-btn-%24%3A%2Fplugins%2Ffelixhayashi%2Ftiddlymap%2Fmisc%2FquickConnectButton " title="Toggle TiddlyMap actions"></button></span><span><h2 class="tc-title">JUnit使用注意事项</h2></span></div><div class="tc-tiddler-info tc-popup-handle tc-reveal" hidden="true"></div></div><div class=" tc-reveal" hidden="true"></div><div class=" tc-reveal"><div class="tc-subtitle"><a class="tc-tiddlylink tc-tiddlylink-missing" href="#majiajun">majiajun</a> 2022年10月26日 23:08</div></div><div class=" tc-reveal"><div class="tc-tags-wrapper"><span class="tc-tag-list-item" data-tag-title="单元测试优化"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">单元测试优化</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span><span class="tc-tag-list-item" data-tag-title="exported"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">exported</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span><span class="tc-tag-list-item" data-tag-title="publish/交付质量优化"><span aria-expanded="false" class="tc-tag-label tc-btn-invisible" draggable="true" style="background-color:;
fill:#333333;
color:#333333;">publish/交付质量优化</span><span class="tc-drop-down tc-reveal" hidden="true"></span></span></div></div>


<div class="tc-tiddler-body tc-reveal"><ul><li>先编写测试用例再写代码（如果条件不允许则另外讨论方案）</li><li>规范参考 <a class="tc-tiddlylink tc-tiddlylink-resolves" href="#JUnit%E7%9A%84%E7%BC%96%E7%A0%81%E8%A7%84%E8%8C%83">JUnit的编码规范</a></li><li>充分理解和学会使用 <a class="tc-tiddlylink tc-tiddlylink-resolves" href="#JUnit5%E5%B8%B8%E7%94%A8%E6%B3%A8%E9%87%8A">JUnit5常用注释</a></li><li>了解 <a class="tc-tiddlylink tc-tiddlylink-resolves" href="#JUnit5%E5%B8%B8%E7%94%A8%E6%96%AD%E8%A8%80">JUnit5常用断言</a></li></ul></div>
<div class=" tc-reveal">

</div><span class=" tc-reveal">



	<label style="margin-left:auto;margin-right:auto;width:fit-content;display:block;">链入</label>


<ul class="horizontal-list-links"><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#%E4%BA%A4%E4%BB%98%E8%B4%A8%E9%87%8F%E4%BC%98%E5%8C%96"><span class="tc-tag-label tc-btn-invisible" style="background-color:;
fill:#333333;
color:#333333;">交付质量优化</span></a></li></ul>


	<label style="margin-left:auto;margin-right:auto;width:fit-content;display:block;">此文件夹中的文件</label>


<ul class="horizontal-list-links"><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#JUnit5%E5%B8%B8%E7%94%A8%E6%96%AD%E8%A8%80"><span class="tc-tag-label tc-btn-invisible" style="background-color:;
fill:#333333;
color:#333333;">JUnit5常用断言</span></a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#JUnit5%E5%B8%B8%E7%94%A8%E6%B3%A8%E9%87%8A"><span class="tc-tag-label tc-btn-invisible" style="background-color:;
fill:#333333;
color:#333333;">JUnit5常用注释</span></a></li><li><a class="tc-tiddlylink tc-tiddlylink-resolves" href="#JUnit%E7%9A%84%E7%BC%96%E7%A0%81%E8%A7%84%E8%8C%83"><span class="tc-tag-label tc-btn-invisible" style="background-color:;
fill:#333333;
color:#333333;">JUnit的编码规范</span></a></li></ul>

</span>
</div>
</a>
</section>
</body>
</html>
